One thing that made a huge difference to my DS2 was sending him in packed lunches most of the week. He now has ham or chicken in a pot, a pitta bread, a yoghurt, piece of fruit and some cucumber. It fills him up way more than a school dinner and he never asks for snacks anymore straight from school. He has a limited variety of food so we struggle with school dinners anyway but he was have what they call a special at school so this was generally a baguette or something. Just not enough of the right stuff to fill him up.
Evening meal-wise again he is very limited but if he has for instance pasta I will do pasta and a tomato based sauce but do less pasta and add chicken for extra protein. I generally have a high protein diet and it really does fill you up better than anything else.
I will do him chicken dippers, a handful of oven chips then a load of veg. It's not ideal but I give him less than he was having.
He was on the 98th percentile, he is 10. Child BMI is an odd one as it takes into account their age, at the time he was the same height as my 12 yo DS so if I made him 12 on the calculator he was much lower down the scale. Even so, still overweight.
He has always done lots of exercise (football, cricket), in excess of 10 hours outside of school (plus 3 PE lessons in school). He has recently taken up boxing and that involves lots of proper fitness training, that seems to have made a massive difference. I weighed him after 4 weeks and he had lost 4lbs already, that was in the school hols too. I haven't weighed him again though as I can see he's losing weight, I don't want it to be an issue but he is fine with being weighed, he has to at CAMHS every few months anyway so it doesn't worry hi,