HTTP load balancers typically balance per HTTP request. A gRPC stream is a single HTTP request, independent of how many messages are in the stream. Each client can be directed to a different backend, so it can scale. So gRPC behaves how you want out-of-the-box.
Streaming RPCs are stateful and so all messages must go to the same backend. This can be essential for result consistency (like with reflection) and helpful for performance in certain workloads (like your case).
One note about scalability though: if the streams are long-lived, you can have "hot spots" where certain backends have a high proportion of the streams. Your service can periodically (minutes or hours depending on your needs) close the stream and have the client re-create the stream to rebalance.