YES - I have the best advice ever. Set up a reward system instead of a punishment system.
Meaning - - if he says no, he doesn't get a reward after dinner. If he is well behaved and doesn't say no all day, then reward him with a piece of candy. YES - only a piece of candy.
The idea is that all day long you remind him about being good. When he is good say how proud you are of him or say "good job",then at the end of dinner make a special announcement to everyone at the table about how good he has been today and he gets a piece of candy for following the rules.
If that still doesn't work and he is ornery keep the reward system up, but hold him in your lap in a chair for 2 minutes (even if he is kicking and screaming)whenever he is sassy to you. Officially it's just a "time-out", so it's not like you're hurting him or beating him or anything. He'll act like you are, but it's discipline.
Reward for good as much as you can by praising and encouraging.
Good luck!