I struggle with WoC more than any other army, I think.
The only way I can manage them is to really break up their advance and send them in different directions. The two best tools I've found to do this are archers and pistoliers. The archers are awesome to bait and hold frenzied units because frenzied units are forced to overrun when they wipe out a unit, and they will wipe out your archers, or stand there doing nothing instead of charging, either way you're coming out ahead. So look for those mark of Khorne units. If you angle the archers correctly, you can set up a flank charge for your knights or a strong infantry unit.
Pistoliers, espcially a large unit of 10 or two units of 5 can get up close and whittle down the medium sized blocks of warriors very quickly so that they'll lose the war of attrition when they get into combat with your units. Again, he either has to just take gunfire to the face, or turn in circles trying to outmanouver your pistoliers, either way is win for you.
I guess I have two more tips, for what they're worth (not much): Hold back, and even think about deploying more than 24" away. He'll bitch about it, but it's his fault for playing warriors

Use large stubborn units like infantry busses or large units of knights to hold up his less offensive units like Tzeentch warriors. You'll never get their points, but you can also keep them from getting yours.
After that, pile on the choices that others mentioned: HBVG, Lore of Metal, Demigryphs, and I would also put in a nod for large units of great weapon IC knights (14-18) so that they're capable of grinding. I find the steam tank is not very useful against WoC. Volume of attacks is what does in a steam tank and WoC can muster a very high volume of attacks across a small frontage.
It's easier said than done, but like I said, I think WoC is one of our toughest match-ups, if not the hardest. And by the way, feel grateful that he's not packing hellcannons because they can force you to him.