I haven't had to deal with this, but you could try looking at the servicepoint object itself, which has a few methods and properties that may be able to control this.

Like

.ServicePoint.ConnectionLeaseTimeout = 1000
.ServicePoint.CloseConnectionGroup("GroupName")
.ServicePoint.SetTcpKeepAlive()