Personally, having done a fair amount of remote pair programming recently, I prefer Join.me. We don't actually both use the keyboard/mouse at the same time, we commit and push changesets using source control and actually swop who is the host.
One of the handful of very popular VNC options would allow both parties to type and have control of the mouse (unlike SharedView, where you have to pass control back and forth), and goes well with Skype voip.
- UltraVNC
- RealVNC
- TightVNC