Feed him healthy protein. Give him a ziploc baggie with raw nuts in it to munch late in the day or on his way home. So when he walks in the door he isn't completely starved. Have something ELSE to hand him when he walks in the door: a glass of ice water, a celery stick with peanut butter on it, a basket of laundry to fold/put away, his running shoes.... seriously... get him occupied quickly.
Also, make sure he eats a breakfast that includes protein. A bowl of cereal is food, but it isn't the right kind of food really. He needs to eat 12-14 grams of protein at breakfast for it to last till even close to lunch. He needs to eat some protein at lunch too... a salad with no meat won't cut it.
If you fill him up with protein and veggies (limit the simple carbs which just equal sugar) then he will feel fuller for longer. Serve a garden salad with every meal as one of the side dishes. Eliminate sides dishes like white rice, macaroni, mashed potatoes, and bread.
As far as being a night snacker, there are two things you can do that will work together to address this problem.
1: don't bring junky snack foods into the house (no chips, no crackers, candy bars, ice-cream, or other junk); and
2: keep a supply of ready to eat snacks on hand that ARE healthy. The aforementioned celery sticks, (wash and cut up a few stalks, stick them in a sandwich ziploc bag and fill with water to help keep the celery fresh---stick it in the fridge), raw nuts (peanuts, almonds, cashews, walnuts) already shelled (my husband loves the Emerald brand), some of the greek yogurt that is now readily available (high protein, low fat), fresh fruit like apples which are now in season.
Maybe an hour after dinner you could get up and slice a chilled apple, put a dollop of peanut butter with it, sprinkle the apples and/or the peanut butter with cinnamon and serve it to him on a plate while you sit on the sofa (TV munchies). Or make popcorn on the stove (in a whirly pop it doesn't take much oil and it is FAR healthier than any microwave popcorn) and just add salt.
And stay positive. :)