I am more in agreement with Whipeout --at least to the point of wondering if he has a medical problem or if the problem has been addressed with a medical professional. I would want to know if he truly is physically gagging for some medical reason or if he is self-inducing the gag reflex.
If it is the latter, I would also be talking to the doctor as to how much food he actually needs to be healthy and making sure what he eats to accomplish those goals. But I would not be allowing him to dictate everything that he eats or wants to eat.
As children, my sister and I were not required to eat everything that was on the table, but we were not allowed to "simply be picky".
I am sorry to put it this way, but I believe he may be picky because he is being allowed to be. From your examples, it would appear to me that it is a little over the top. If the doctor says there is nothing wrong, I would be inclined to let him be hungry and then eat what is presented --with the exception of things that are truly disliked by many people. If it is standard family-fare, he eats it or has a really good reason for disliking it.