Well, you are probably doing all you can for him. Some children are just built the way they are built.
As a baby, and young toddler, my DS was pretty chubby, but he is now nearly 3 and definitely thinned out just right. He's no bean pole, but no longer chubby.
He has always eaten the right things, generally at the right times, and I think if you just keep doing what you are doing, it all sounds perfectly healthy to me!
I did once watch one of those programmes on tellie that talked about a child who was slightly overweight (at that age, really, are they 'overweight' though?), and one problem was that his meals were just too big. Not quality in this case, but quantity. He did not need as much as he was getting 3 times a day.
If I let my DS eat as much as he wanted, he'd polish off two bananas, two bowls of cereal, several yoghurts and 7 million cartons of juice- all before 8 o'clock in the morning.(!)
Same goes for lunches and teas.
I do not think it is true that a child will only eat what he needs. Rubbish in fact. I always have to stop mine eating.