H.A.
You might want to try giving him some freedom to say all those bad words or names, but away from you and everyone else. You could tell him, "Feel free to say all the unnice things you want in your room with the door closed. It hassles my ears and the other kids' ears when we hear those things. Feel free to rejoin us when you're finished and you feel like saying sweet things." That way he will feel empowered to behave that way only in isolation so it isn't making a problem for others. You can also try doing an energy drain. When he starts name calling, dramatically say, "Oh no, Energy Drain." You can even put your hand to your head and act like you are all of a sudden very exhausted. Then let him know that he will need to do something to replace your energy. He can use nice words to talk to others, that might put your energy back, or he could do some simple chores for you to help you feel re-energized. (These are techniques used in Parenting with Love and Logic. Highly recommended book!) Hope this helps.