Yes it is. Instead of granting permissions at the refs/heads/* level or refs/* level, you would want to grant specific access to a specific branch. It is also possible to use regular expressions instead of specifying each branch individually.
You may want to refer to the access controls documentation:
Specifically, you want to restrict Read, and also understand the difference between a BLOCK and DENY permission (or how the exclusive permissions work). Basically, there are lots of ways you could do this. We explicitly allow write to only a handful of branches (using the regex wildcarding), and no other write access is granted, so the result is an implicit block. The same could be done for read permissions.
--Doug