For example, my friend is using an earlier generation iOS device. He's having some issues with my testflight beta. Trying to debug this through conversation is hard enough. Add 20 minutes between changes and this becomes impossible.
We can't meet in person for a few weeks. But I imagine this would be useful when that's not possible either.
Is there a way to remotely connect his iOS device to my (hackintosh) Mac so I can directly upload fixes to his device?
No. For a short time, Xcode featured wireless debugging, but that wasn't working too well and within the same local network only (although it would probably have worked via vpn, I suppose).
Other than that, there's only ad hoc builds. If you need crash reports, you can get them by having your tester sync the device with itunes and send the reports to you. Learn more about that here.
If you need live application data (NSLogs etc.), you'll either need to implement some sort of remote logging solution yourself, or start looking around for existing libraries. This one for example looks promising.