I would just try and hide as many high calorie foods in things he does like. When baking we always use coconut oil ( I melt it down and put it in pancakes, waffles, breads.... 130cal/Tbsp), we also use the coconut oil to spread on toast, melt in oatmeal... I put olive oil into his pasta, or melt butter. We also melt butter in all his rice dishes. Maybe try mashing an avocado or half of an avocado into baked beans, or other things that might disguise it (280 cal/avocado). We have a completely delicious full fat greek yogurt that has 310 calories per serving (granted, my little guy doesn't eat an entire serving a feed, but he eats at least half a serving) . If he would drink a smoothie we often put olive oil in the smoothie or a ground up avocado; all the fruit/juice hides the taste of the avocado or olive oil.
Good luck! I know how stressful it can be to see your little one not gaining as much weight as you'd like.