No: the compatibility modes aren't the same as the real browser - they try but some features, especially things like CSS or DOM handling of errors, non-standard properties, etc. will not be consistent enough to avoid testing in the real thing.
When IE8 was out, setting IE7 compatibility mode using an HTTP header worked for 99% of a huge internal business app but I had to monkey-patch around a third-party library because the code which worked in IE7 raised an exception in IE8's IE7 compatibility mode due to significant differences in the underlying JavaScript engine. This was an improvement - IE7 should have done the same - but it broke a huge enterprise shovelware system with an indifferent vendor who waited until after IE8 was released to start testing (a support manager actually contacted me asking if they could redistribute my patch!).
Compatibility mode isn't what he's talking about. In the developer tools, there's also "browser mode", which allows you to select a different user agent, and "document mode", which allows you to select a rendering engine from IE7 onwards.
the sad truth is; anything below ie7 should be dropped. Unless you are developing for a corporation that won't move away from ie6 and then you should only test on ie6.
My experience is that about 90% of the time, the compatibility mode in IE9 or IE10 will give you an accurate prediction of behavior in IE7 or IE8. It's that last 10% of the time, generally related to JavaScript issues in the original browser engines or obscure CSS bugs. So it works for basic stuff, but if you have anything complex going on you should test in a VM running the actual browser version you want to test.