There's no way to truly hide your link.
At some point the browser (IE, FF, Safari, etc.) has to know where it's going and it will be exposed. Any type of link cloaking or redirecting is easily discovered using even a simple tool like Link Hopper (
http://www.mattharward.com/?s=link+hopper).
The web is inherently public. You can make it more of a hassle on yourself... but in the end it's pretty easy to break a link down to it's associated hops. You can hide, obfuscate, encode, rename, etc. and the browser still needs to know what it is... and your competitor will know, too.
You can get trickier with things like DNS aliases and iframes... but anybody that has half a clue and really wants to know will break through anything you do in no more than a few minutes. It's the good news and the bad news of internet marketing. It's all public if you know where (and how) to look.
Why do you need your affiliate ID hidden to that extent? Is your competitor doing something to your actual ID? Typically they are simply seeking out the network and the offer... not your actual affiliate ID (unless they are doing it to flag or report your account).
Perhaps if you shared what your competitor is actually doing to your affiliate ID we could provide better help with alternate solutions.
And... it could be your competitor is just stupid enough that cloaking your link will actually deter him / her.