Relax. The dinner table should NOT be a battleground. Fix a variety of good food for everyone and let him choose to eat it or not. As long as you don't keep candy, soda, or chips in the house, he won't eat too much of them. Don't use "treats" as a reward for "eating well," or for any other behavior. Food should never be used as a reward. He won't suffer from malnutrition just because he prefers to eat carbs for a few years.
For a few years my now-11 year old refused to eat anything but white rice, french fries, fish sticks, and popcorn. I told him he didn't have to eat what the rest of us were having for dinner, but he would have to fix his own food, because I wasn't going to cook twice.
He's outgrowing the "white foods diet" now, and he's added a few more colorful choices to his preferred menu: broccoli, greens, carrots, mushrooms, and artichokes, and he wants to cook the greens himself. Of course, he still wants to drink soda, and eat candy and chips whenever he has the opportunity, but I just see to it he doesn't have the opportunity too often. And he still won't touch raw tomatoes, squash, eggplant, sweet potatoes or peas, but so what? If I don't push him, and he sees everyone else enjoying these foods, he'll get into them eventually.