Is there a way to set a specific branch on GitHub to pull-only (read-only) or can I only set this for the whole repository?
There is no way to do branch level permissions on Github, but the gitolite project supports what you're looking for.