I have two suggestions. Is he sitting in a high chair? If so, I put character stickers on the tray and covered them with clear contact paper. Then I would ask my kids to name the characters or ask what shapes or colors certain things were. They would be so engrossed in the tray that they didn't notice I was feeding them (Maybe your son shouldn't have so much autonomy yet with food and you should do some more feeding.)
The other option is when he starts throwing the food, remove the high chair tray, and the food and get him down. Say "Uh, Oh, no more food!" If he fusses, tell him "no throwing food" and start over. As soon as something hits the floor, remove the food and do the "uh, oh" thing again. After twice, it is obvious that he is not hungry just get him down and keep him down. The other thing I would recommend, especially since he is so small, is to feed him more often than three times a day.
Oh, how many bottles or cups of milk is he having a day. That can really impact a baby's diet...they get full on milk and don't eat, so cut back and don't give him milk between meals or before he eats, give it to him after he eats, or when he has eaten a substantial amount.
As for his size, kids all grow at different rates. Are his bowel movements solid and regular? If he is constipated, he may be nauseous and not want to eat very much. Kids that age get constipated VERY easily. If he has runny stool on the other hand, he may be having a problem with nutrient absorption and you may want to have him evaluated by a doc. That said, kids grow at all kinds of rates and there really isn't anything "normal." Only you know him and know if there is a problem that is physical or behavioral! Good luck!