<p>I noticed that the ASP.NET cache items are inspected (and possibly removed) every 20 seconds (and oddly enough each time at HH:MM:00, HH:MM:20 and HH:MM:40). I spent about 15 minutes looking how to change this parameter without any success. I also tried to set the following in web.config, but it did not help:</p>

<pre><code>&lt;cache privateBytesPollTime="00:00:05" /&gt;
</code></pre>

<p>I’m not trying to do anything crazy, but it would be nice if it was, say, 5 seconds instead of 20, or at least 10 for my application.</p>

According to the
documentation
, privateBytesPollTime is for "worker process memory usage" and the default is 1 second.  I don't think this relates to cache item removal.
I did confirm your results using an item removal callback- it looks like items are removed at the bottom of the minute, :20, and :40 seconds.  This suggests that an item may remain in the cache for up to 20 seconds past the AbsoluteExpiration set on them.  I couldn't find any documentation stating whether the 20 second polling interval could be changed.