I think he has a good assortment, but I know you wish he would try more items. Just keep offering him new things and eventually he will try them. It also helps for him to see other children eating different foods. In daycare they ate everything.. Lima beans, beets. I couldn't believe it.. At school they learn a lot about healthy eating and again they begin to see and hear other kids talk about their favorite foods and they are willing to try..
We had rules in our house. No ugly comments or ugly faces at the table.
Also no battles. You eat what is served and if you don't want it you sit there and drink your milk. No snacks in between meals. As she got older (elementary school) I made a deal with the family. If you did not want what was served, you could have a bowl of non sugar cereal.
Our daughter was selective about how she like her food served. She liked what she called, "plain food".
If I made tacos, I would place it on a small plate with each item separate. The meat in a pile, the cheese in a pile, the lettuce in a pile, the chopped tomato in a pile and the tortilla or taco shell on the side. Then she would eat some of it or all of of an item. I would then add a little more. No comments.. I would continue to add a small portion each time she ate, but not make a big deal out of it. Sometimes on her own she would ask for more. lettuce please. Or More cheese please.
Spaghetti was a pile of pasta and the sauce on the side.. I grated zucchini and carrots into it and my family never noticed. if meatballs or Italian sausage was served, I placed it separate on her plate also.
A pile of rice, broccoli, melted cheese, grilled chicken pieces.
Our daughter did not care for butter or salad dressing so she learned to ask for food"plain". Bread, baked potatoes, pasta, salad, veggies I kept a small amount with out the butter or sauce. She still does not care for gravy.
I know many kids LIKE the sauces and dressings, so having them available for your child to dip into may help. Try a small portion of BBQ sauce. ranch dressing, spaghetti sauce, melted cheese. Maybe he will like food that way.
This is very normal. Just hang in there.