You can make a homemade pizza the night before, and he can take a few slices for lunch (assuming he will eat cold pizza). It's already cooked, so very unlikely it will spoil.
You can make a "hot dog sandwich" (cooked 1-2 hot dogs, sliced thin longways, on bread with ketchup, mustard & sweet relish). Or, you could bake a few hot dog 'pigs in blankets' (with the pilsbury dough). Again, with cooked meat right before you make it in a sandwich, you'll have low risk of spoilage. I also like to make sandwhiches with cooked turkey bacon for this reason too. (I use non-nitrate lunch meat... However, it gets so hot in TX during the summer that I have literally seen lunch meat change to a greenish color within an hour of taking the sandwich out of the cold pack. I'm totally with you on food spoilage concerns).
Dry salami, cheese and crackers are also an option. Hard cheese (like chedder) might sweat a little if it gets warm but it won't go bad.
I would suggest you avoid anything made with real mayo and/or eggs. You can always try Miracle Whip instead if mayo; Meracle Whip isn't made with eggs so it won't spoil either.