Are you eating with him? Have you tried involving him in the making of his lunch and dinner?
If you are offering things that he definitely will eat at every meal, he will fill up on those and not try new things. Perhaps set one meal a day aside that you are willing to experiment with and offer him different things then, and none of the trusted favourites. Like lunch time, and eat the same things with him. Let him try off of you plate etc.
The other 2 meals you could then just stick with firm favourites so that you do not feel too stressed about it. As he starts to expend his repertoire, you can then include those onto the favourites list and try yet more new things at lunch.