I like pair programming when another programmer and I are about to start a project using technologies we're not familiar with. But each programmer should have a computer. It works well when one of you is projecting his screen and the other is on a laptop. In this situation both of you are going to have questions constantly and spend a decent amount of time looking up answers. You end up explaining things to each other as you figure them out.