For local file access you're out of luck. Over http you should be able to snag it at the http level in your web server. One usually has apache or nginx or gunicorn or some other wsgi container in front of hgweb and you can run code on GETs to the script.
You're right that the outgoing
hook is only triggered if there are changes that will be sent.