Strangely enough, I thought about your problem for a while. My husband eats like that, or he used to until I intervened (he still eats a lot, just healthier). I would attack the snack thing first. Pack him a filling snack along with the lunch- anything high in protein and fiber (and some fat if he doesn't have a weight problem). Protein bars might be a good choice, or protein drinks. Foods high in protein and fiber will make him feel full longer and stay away from his lunch until lunch time. Then look at lunch the same way. I could probably eat 5 PB and J's too, and I really don't eat that much. Give him more lean protein, and if you do Peanut butter put bananas on them instead (yum, now I want one!) and lots of vegetables- pack him a salad! I know men hate that on principle, but my husband, if given the choice, will order a salad for lunch and swears it keeps him alert (istead of drowsy food coma) all afternoon. Use a cooler pack and you can send him cheese or other refridgerated stuff. I also read somewhere that you can pack any hot food in a thermos (and I mean more than just soup) and it will stay hot, but I've never tried it. Maybe you could heat up a big portion of last night's leftovers and put them in one.
I told my husband about your request and HE said to tell your husband that he has to have enough discipline to not eat his lunch for a snack! On a similar note, maybe you can give your husband a small food budget for when he does really need a little extra, but otherwise stick to his lunches. I know some (most) men are relunctant to go on a budget when they feel they bring home the money, but you can try it.