His weight is on the 5th percentile and his height is on the 25th percentile for his age. Since he drinks milk suggest making him milkshakes (milk, fruit, and ice cream blended) in place of milk at all meals for additional calories and protein. You stated he likes cheese, than add cheese to pasta, potatoes, or rice. Some tips for additional calories: If he likes pasta, then add meat or cheese sauces to the pasta instead of plain tomato sauce or plain pasta. Add dry milk to oatmeal, mashed potatoes, gravies, creamed vegetables, and creamed soups (add additional protein sources to soups such as meat). Use all fat dairy products and no low fat foods so he has the calories he needs. Remember to relax at meals and just give him the foods he wants. Introduce a food to a child that they will accept, however, if they do not want it you have to not make a fuss and let it go. Hoped this helped you.
If he will drink juice you could try a smoothie with supplements in it, that's what my kids get every morning and when they get home from school, no questions asked. No other snacks until they finish their smoothie, with Udo's DHA Oil,Vit E oil, Vit B6, probiotic powder, and a little bit of protein powder, mixed with a few frozen strawberries, a few slices of banana and a 2 oz orange juice. I make this smoothie in the morning, use half of it to make 2 popsicles and split the rest between my two kids. They drink the smoothie in the morning, and eat the popsicle after school. The Udo's oil has helped reduce their cravings for junk and sweets, and actually increased their appetite for vegetables too.
You are the one who supplies the food in your home. Your son can only eat this junk if you buy it. Why do you cater to his whims? I have four children. They all ate well because there was only healthy, nutritious, home-cooked food on the table.
You say he will only eat such and such. Not true. If you get rid of the junk, his only recourse will be decent food. No child voluntarily starves. (Although he might make a fuss for a couple of days. But two days without food won't kill him.) You are the Mama. Take charge.