If anyone reading this is using a car seat forward facing in the recline position, READ THE MANUAL!!! Most car seats do not allow recline for forward facing, only for rear facing and if you are using recline for forward facing you are incorrectly using the seat which could mean a disaster in a crash! READ THE MANUAL!
Now onto moms question! First off, make sure your son hasn't outgrown his current car seat. A forward facing car seat is outgrown when one of three things happens; the tops of the ears are level with the seat back, the shoulders go over the top harness slot, or the child reaches the weight limit. At 38lbs he's close to outgrowing a traditional car seat, so read the manual, know the limits and make sure he's not outgrown the seat in height either (by guidelines above, shoulders over top harness slot, ears level with the seat back).
Graco Nautilus has a slight recline and large side impact wings that support the chids head. It will harness to 65lbs and the nbooster to 100lbs. Its $150 and will be the last seat he needs.
Britax Frontier again has a slight recline and large side impact wings that support the head. It will harness to 80lbs and then booster to 120lbs. Its $300 and again the last seat he will need.
Otherwise having a bobbing head won't hurt him. If he's uncomfortable he will wake up and adjust himself, trust me. It won't hurt his neck (at 3 his spine is not fused with his skull yet and his bones are still very bendy), and kids dont' get sore necks like adults do. You can try a neck pillow but remember to never use anything that goes between the child and the car seat or the child and the harness. A U-shaped child sized neck pillow put on backwards (with the opening to the back) will also support his head.