devi per forza farti restituire tutte le 201.000 righe? Non credo sia proprio il compito di un webservice.

Se ne hai proprio bisogno, e non puoi farne a meno, sei costretto con la forza, l'umiliazione e la sofferenza, allora puoi agire in multithread dalla tuo windowsform.
Ovvero, crei 3,4 o 5 thread che in parallelo fanno 3,4,5 chiamate ciascuno allo stesso webservice. Ogni chiamata preleva circa 50 righe dalla tabella. Questo naturalmente comporta la modifica del webservice in modo da restituire i dati paginati direttamente dal server.

In questo modo il webservice non ti da l'errore OutOfMemory (ma sei sicuro sia il webservice?), ed il tuo programma innanzi tutto esegue le chiamate in modo asincrono, quindi non si blocca (in attesa della risposta), di conseguenza può cominciare a visualizzare i dati anche se non li ha ancora ricevuti tutti.

Ecco, questa è la linea che seguirei io........
Spero che altri espongano la propria opinione/soluzione.

ciao