This is a tough question and without knowing a lot more about your setup my answer is going to be fairly general. As noted,
realtime has a very specific definition in computing and you aren't going to be able to achieve that. You can easily achieve
"realtime" though. The difference? Probably about 10~30ms in your use case.
You don't mention how the datastream is collected in the Pi - either in memory or as a file or whatever - but the only question that matters is:
Can you get a handle on this stream in your favourite programming language on the Pi?
If you can, you've won half the battle. All you need to do now is get it into a stream. I say 'all', this is still a big step.
The classic transport for this type of data (continuous stream) would be UDP but I'll probably advise TCP for a couple of reasons.
UDP: continuous stream of data, fast, lightweight. You'll have to worry about error detection and out of order packets yourself (though maybe less of an issue if each of your 'packets' has a timestamp).
TCP: more packet based than UDP, higher overhead (data about data) to data ratio. Built-in error detection and resend request, built-in packet ordering when the data arrives at the application layer.
My advice - if absolute to-the-bone performance is not needed - would be to grab a WebSockets library for your favourite programming language on the Pi and write a simple server that reads your stream and fires it to a client on your Windows machine. You can buffer the stream into packets as you wish on the server - packet frequency vs packet size - and fire them at the clients as you need to.