Maybe Heroku changed something, or maybe it's the new Cedar stack, but using private gems from Github is pretty easy. It apparently didn't work before.
The important part is in your ~/.ssh/config
Host heroku.com
ForwardAgent yes
After that it's no big deal. Just use an ssh URL to Github (or wherever,
the Github part doesn't really matter) in your Gemfile
and off you go!
source :rubygems
ruby '1.9.3'
gem 'sinatra', :git => 'git@github.com:darkhelmet/sinatra.git'
gem 'thin'
gem 'heroku'
The code here is running on Heroku: http://private-gem.herokuapp.com/
So if you need a private gem on Heroku for work or something, go right ahead.
It's no big deal.