I have a sign in my house that says " No Whining." It sounds so silly, but for some reason kids respond to signs!! And sometimes the other kids will say, "Didn't you see the sign in J.'s house? There's no whining here."
Things that have worked for me have been the same as others have suggested. I tell kids that I don't understand the voice they are use them and ask them to use their normal voice. I'm always matter of fact about it, and I don't mimic, condensed or get bothered when they do it, I just say , " I'll be happy to help you when you ask me in your normal voice." if you're consistent about doing that your son will understand that whining doesn't get him what he wants and he'll stop.
For my own kids I have sent them to their rooms for excessive whining... I just tell them that that voice hurts my ears and I would like them to go in their room and do it until they are ready to use their normal voice again. Just because he wants to continue to do it, doesn't mean you have to listen.
I would however, teach him how to identify his feelings and use words for how he's really feeling. Try the book Raising An Emotionally Intelligent Child, or How To Talk So Your Kids Will Listen and Listen So Your Kids Will Talk. They are great resources for all kind of issues you'll have coming up. Remember also that 4 is a very hard age... kids are often held to an expectation that they are not always ready for. They waver between wanting to do things by themselves and for themselves and needing Mom or Dad to dress them because suddenly they "can't" do it. It takes some time and guidance for them to learn to manage their feelings without losing it.
Good luck!