Me parece extraño que se congele el servidor... porque por definición es multihilos y todo el archivo se recibe en un hilo diferente al principal.
Es distinto en el cliente, donde por defecto el envio se ejecuta en el hilo principal. Lo recomendable es programar el envio de archivo en un hilo distinto (thread) y con ello el cliente no se congelará. Otra solución, si vos mismo lees el archivo y lo vas enviando por trozos, es que incluyas llamadas a Application.ProcessMessages en cada iteración, con el cuidado respectivo de deshabilitar botones, etc. para evitar que la llamada a ProcessMessages te haga estragos.
En fin... la idea es esa.
Hasta luego.