Mine doesn't actually throw up quite as easily as yours, but has always been (and still is) as picky about eating as yours. She doesn't eat meat of any kind, if we do try to make her eat it, she'll gag and throw up. She even gagged and threw up over mashed potatoes. She won't eat pudding, yogurt, meat, or anything that doesn't look good to her. She would do that at your son's age, and still does now. Sometimes she would rather go to bed at 6:00 than eat her dinner. And she stays there all night!
I have a couple of ideas on this one:
If you think he's old enough to understand, try a sticker chart. This worked well with my daughter, but she was older. Each time she finished her dinner (which was the meal we had trouble with) she got to choose an animal sticker (animals were her favorite thing). As soon as she filled the whole chart with stickers, she got to go to the store and pick a prize/toy. She knew from the beginning and was reminded each dinnertime that she was working towards getting stickers and a prize.
Another thing is giving him a choice. Pick two things you really want him to eat, but you know that he doesn't want to eat or doesn't like, and let him choose one. Tell him he can have #1 or #2, and say "which one?" If he doesn't want either one, you can tell him that those are his choices, and that if he eats one all gone, he can have his regular food that he likes, whatever that is. At least that way he's getting a little of what you want him to, but he's still getting what he wants as well.
You could also let him help you make something. I have twin boys that are 19 months old right now. My husband had them "help" him make dinner the other night (waffles). Of course they really watched more than actually helped. But they thought it was really cool to be able to stand up on a chair and be doing what papa was doing.
All of those things have really helped me. My picky little girl still won't eat meat, but I figure that will come with time, and I try to supplement her protein with things she does like (milk, cheese, peanut butter, etc.).
Hope this helps. I'll be watching the answers to your post to see if there are any more ideas that can help my picky eater/vomiter. Good luck!