DO NOT give him anything medical. Or even herbal, not tested on children and can be dangerous.
What you need to do is have him evaluated and have your Pediatrician tell you if there is a reason to worry.
I have a very petite little girl, she is right now 46 inches tall and 45 pounds, so I know how easy it is for us parents to worry when there may not be a problem. My daughter seemed to be so tiny and skinny for the longest time and now at 7 took off in height and had a big growth spurt recently. I follow her cues, she can either eat all the time a few days then not want much for another week. My Dr constantly told me not to worry as long as she moved upwards on the chart each time he wasn't concerned with how much.
As far as being picky, you need to now explain at his age what the different foods do for his body. Give him a chart with six things he does not like post it up and tell him that is fine, however he needs to try new foods and serve whatever you serve to him. He won't starve. Associating his food with "fuel" so to speak. You can get protein shakes with higher calories, pediasure where it is a lot of nutrition and so on. PLEASE talk to your Dr first, before you do anything as they can guide you even send you to a nutritionalist if need be.
If he is full, he is full. Kids know what they need. I wouldn't be so sure he is picky and don't cater to him being picky, serve what you serve and that is that. Get him involved in the meal planning, have him help you at the store and cooking. I know when my kids eat things they are all bragging about like salmon is "brain food" carrots are good for your "eyes" and all of that. I allow things I know they have tried and don't like however I really stress why foods of specific kind are important and so on.
I don't think it is okay NOT TO give him ANY sweets either, kids should be allowed junk food on occassion as long as they eat well otherwise. I feel strongly parents that don't allow it at all will regret it later. You don't have to give it to him all the time but it is kind of part of being a kid. Depriving him, will lead to him binging later, don't let that happen. I can personally attest to that, I didn't have anything in the house like that then when I went to a friends house I pigged out, got teased for it and gained weight in puberty years because of it.
Have things he likes as treats and even for rewards of eating a good balanced meal. My kids know healthy food is always the most important and the sweets and treats are a bonus and special. I see nothing wrong with offering a cookie, some pudding, popsicle, jello or something as dessert for eating a good dinner.