Hi D.,
It's great that you guys are doing the packing thing because you'll save money and eat better!
To make ham salad: grind chunks of ham, onion, and dill pickles together (I've never tried it in food processor, so you'll have to experiment a little). Add mayo until a good spreading consistency. You can add a little pickle juice too if it seems too thick. Omit pickles and onions or substitute sweet pickles if you prefer. You can also squirt a little bit of mustard in if you like.
Other fruit/veggie possibilities: apples, oranges or grapefruit(peel and break into quarters--can be eaten one-handed while driving), banana, green pepper strips, radishes, carrot/celery sticks, melon slices or chunks, kiwi slices (peel first, I hate the skin), peaches, plums, nectarines, tomatoes (cherry or grape tomatoes are real easy to eat but you could cut larger tomatoes into smaller pieces), green onions, dill pickles, raw green/yellow beans.
He might enjoy cheese sticks or chunks as something different. We get the mozzarella sticks at Aldi's.
If he likes ham salad, try a ham or ham & cheese sandwich.
How about hard-boiled eggs? peel first, they are a pain to peel while driving.
How about banana bread or zucchini bread instead of granola bar?
Put the PB on celery sticks. Top with raisins if desired.
Use two ice packs. I think they are pretty cheap, well worth getting another one. Or freeze one of the water bottles, it will act as an ice pack. He can drink a non-frozen one first, by the time he is done the other one may be thawed. Or, fill a water bottle halfway, place in freezer day before. When packing the lunch, remove from freezer, fill the rest of the way. Makes the water really cold! Add a little juice for a different flavor.
Good luck! Hope that helps!
K. Z.