AVR-ATMEGA16 programmer boad
will program the atmega328P
I have the programmer I was thinking about buying this board to program my 328p chips
I don't think the 28-pin DIP will have the same pin layout as the 40-pin DIP. It also may be too narrow to fit in the wide 40-pin socket. You could probably make an adapter with a 28-pin socket and 40 header pins but it would likely be as easy or easier to make (or buy) a board with a 28-pin socket and a 10-pin ICSP header. A "Bare Bones" or "Really Bare Bones" ATmega328P board will work but it would probably have a 6-pin ICSP header like a regular Arduino. You would then need a 10-pin to 6-pin adapter which you can get on eBay for $0.99.
THANKS JOHN FINALLY A STRAIGHT ANSWER