Can't find a good link quickly on how to burn a bootloader to an atmega that isn't available in the IDE by standard. A search on sanguino will probably give you step by step instructions on how to add/configure non-standard boards. Although sanguino uses an atmega644/1284, I mention it since it probably is the best supported non-standard chip.
You will need the right core-files for the 16 though. On http://www.avr-developers.com/ you can find many core-files for many non-standard atmega chips, including the 16.
The files are from 2010 though, you can try to add 'm in the latest IDE, but may... need to use an older version IDE.
Although avr-developers mentions the Atmega16 as tested/functional, it unfortunately doesn't say how good. Working with a non standard chip you may also have to adapt libraries that work with 328/2560-arduinos but may not work with an 16 out of the box, I noticed that a few times with my sanguino.
Looking over this old post, Welcome! | Ralph Kistler the physical package layout is same as atmega1632-PU and uC signaling is the same.
I have been working with the 1632 on breadboard under Arduino 1.0.5 and am well pleased with initial tests. Not sure, however, why there is not a core set already for the ATmega16.