Sim, é possível com o Squid.
http_port 3128
http_port 3129
http_port 3130
acl port1 myport 3128
acl port2 myport 3129
acl port3 myport 3130
tcp_outgoing_address x.x.x.1 port1
tcp_outgoing_address x.x.x.2 port2
tcp_outgoing_address x.x.x.3 port3
Se você tiver um gateway diferente por endereço IP, também precisará configurar o roteamento de origem:
ip rule add from x.x.x.1 table 10
ip rule add from x.x.x.2 table 11
ip route add table 10 default via GW1
ip route add table 11 default via GW2
ip route add default via GW3
No squid.conf, é importante definir:
server_persistent_connections off
Ou meu procedudore não funcionaria.