this's introduction into the language predates references -- it's a pointer because at the time it had to be, and it was never changed.
Changing it to a reference would be of little value:
To summarize: this is not a reference because it predates references. It could have been changed into a reference, but the utility of this is questionable; many widely used constructs make use of its being an address. Making it a reference would save a little typing in some cases, but add a bit of typing in other cases -- there is no clear benefit.
Of course, if it really offends you so much you can always #define self (*this) and use self as you would otherwise use this.