Hosting multiple repositories, each with differing access control

Solution 1:

I think what you are likely missing is that it is perfectly allowable to create a .hg/hgrc file inside each repository, and those files can contain allow_push and allow_read entries.

Solution 2:

Mercurial-server is a great way to host many Mercurial repos with different access requirements per repos.

If you decide this is not for you then you should take a look at the ACL extension to Mercurial.