Perhaps in a really tight loop but the counter is still going to be several iterations ahead thanks to the out of order capabilities of the CPU.  You may also have other things in play as well such as the micro-op cache depending on the code size of the loop.