Is it possible to hide plugins on a per blog basis in WordPress multisite? I would like not to have plugins available on certain blogs.
Super Admin is your friend! If a plugin is not active in the Super Admin (also lamely named Network Admin) Then it won't show up as an option for individual blogs.
It basically works like this:
Installed as Super Admin (main site) and "Network Active" will be active on all blogs on the network. Installed on Super Admin, Active but NOT "Network Active" only active on Main/Parent site
If you want it only installed on a few sites then just manually install the plugins like you would normally do. Each instance of WordPress on a multisite is treated as its own site so installing a plugin on one site (with the exception of the main site) will not install it on the rest.
Based on your comments I would make sure that the user has the correct role to upload/activate plugins. You must create a user in each site individually or add an existing user to the site.
You could also try a plugin like http://wordpress.org/extend/plugins/multisite-plugin-manager/ and see how it goes.