Hi there, I think all toddlers pretty much go through this phase and it is just that, a phase. It will pass as he learns more about what is acceptable table behaviour and what is not. With my DD we found the less attention we paid to it the better. If we reacted she too would laugh and do it all the more. We found that saying something calmly like "we don't throw our food you must be finished now" and taking the plate/dish away worked well. She would often protest and I would return her plate saying "eat it up nicely then". I know how frustrating this is but trust me he will grow out of it, just be consistent in your approach.
Another thing that worked wonders for our DD was sitting her on a booster seat on our dining chairs, it was like she felt more part of the family meal then and accepted table rules better by following our example. As for your carpet, could you get a plastic sheet or tablecloth that you can put under his chair? Then you can just wipe it clean afterwards. HTHs a little.