En C#, HttpClient acepta un manejador con la opción de proxy y las credenciales con el usuario y la contraseña del pedido.
Antes de abrir la conexión
Arma el manejador, define el proxy con la dirección y el puerto 20001 y pasa el manejador en el constructor del HttpClient. Para SOCKS5, usa el puerto 20481 con el tipo de proxy correcto.
Un detalle común: HttpClient reutiliza conexiones. Para que cada tarea salga por una dirección distinta, crea un cliente por dirección.