First of all. Is he gaining weight consistently on his curve and does he meet all his developmental milestones? If the answer is yes, then what he is doing is VERY age appropriate. Alot of kids will eat anything that is not nailed down and then at about 1 1/2 yrs, they change their eating habits and that can last a long time. You have to think between like 2 and 5 they gain an average of like 4 lbs a year, how much do they really need to eat?
My suggestion is keep offering him the food you eat at meals for dinner. Lunch and breakfast should be whatever he likes and you know he will eat. Dinner should be about what the family is eating and he needs to get used to that. He will NOT starve!! If you cater to his pickyness, you are setting yourself up for disaster. I am so serious. Instead of trying to feed him at dinner, put pieces that he can handle in front oh him and let him feed himself. It might be messy, but not only will he learn to be independent and self feed, he may be more willing to eat if he is in control. You know what I am saying. But make sure you always give him silverware with his food, eventually he will connect the two and will start using it, if only to mimmick you. And if he does not eat dinner, he gets his third cup of milk and no snack until dinner is completely done. After you do the dishes and everyone has left the kitchen so he will not see his resistance as a way to just get a snack he likes for dinner, after dinner.
NOW, for the milk and pediasure. Pediasure is expensive as hell. Why are you giving him that? He does not need it (unless doc said to give it to him) and you may be spoiling his appetite. I would also limit his whole milk intake to no more than 3 6 oz glasses a day and then the rest of the time, I would give him water in his sippie cup to be at his disposal. Not only will he not get filled up on milk and pediasure, he will learn to like water and what better drink is there? Juices and koolaids are not the best thing for him to be drinking all day long since they are both sugars. He doesn't need juice because you say he is eating fruit. Start diluting his juice until you can remove it all together. Juice should be a treat and not his main source of hydration.
Also for the meat and fish and other things he won't eat. Ketchup and bbq sauce are the duct tapes of the kitchen. Let him dip his food in it, even if it is messy and you may see him eating more and more. If not ketchup and bbq sauce, you could try ranch, catalina or honey mustard. Whatever he likes. Hope this helps!