You could ban someone for abusing a waitress, and serving him yourself next time might give you an indication of whether he is just annoying or is really vindictive; the change might also communicate the message that his behaviour is disturbing or provide you with the chance to discuss his concerns and explain what you can provide.
You cannot ban him due to his nationality or tipping practices but you can absolutely ban him for being disruptive. If he's constantly badgering the waitress and then criticizing her when she doesn't fall over backwards for him, his behaviour is possibly preventing her from giving your other customers excellent service.
I am a consumer, not a restaurant owner, and people like this guy really do ruin the experience for the other diners.
Serving him yourself would give you an opportunity to explain how his behaviour is impacting your servers and your other customers but it might also give him the 'recognition' he craves (he's the only one being served by the chef) and it might make the problem worse: when you don't serve him, he'll be even more obnoxious so that next time you will.
The problem with people like this is that you cannot change their behavour - they think it's justified.
I've had friends who were both thrown out and banned and, knowing them, I understood exactly why it happened and would never hold it against the restaurant. If you do ban him, and he trashes you to his friends, they would probably take his words with a grain of salt.
I say ban him. Or, have the bus boy serve him. If he complains, tell him he can have the waitress if he promises not to abuse her. If he stiffs her, next time he gets the bus boy. Eventually, he'll stop coming on his own.
If I had been sitting next to him the night he complained so loudly about the duck, I would have given him a piece of my mind....