Have you tried ignoring him when he speaks that way? Sit him down in a calm moment, say something like "You know that Daddy and I have not been liking the tone of voice you have been using lately, that is why you have been sent to time out so much. From now on, when you speak to me in that ugly tone of voice, I will not answer you until you can speak nicely to me. I am also only going to tell this to you once." And then ignore him. Maybe he is getting some kind of twisted payback by riling you up this way.
just keep on swimming!