I have my share of picky eaters, but I have found some alternatives that work for my kiddos. We have changed the contents of the sandwich - ham & cheese, just cheese, PB & honey, etc. As someone else suggested, changing the "bread" to tortilla, crackers, or hamburger bun might also work. Cheese and crackers or a bagel with cream cheese can be used in lieu of a sandwich, too. I have also found that yogurt with granola and fruit (in separate containers) is a good one. What about cold pasta - like pasta salad (without all of the weird things in it)? Cold pizza might also work - my daughter prefers it cold to hot.
You didn't mention your kids' ages, but they might be old enough to "help" you pack their lunches. Maybe if he has a say in what you put in there, he might be more likely to eat it. My children love deciding what they can eat for lunch the next day and that has directly affected how much they eat at school.
Good luck!