The ServicePoint class has an internal method called
ReleaseAllConnectionGroups that sets
KeepAlive = false on all the connections then releases them. This answer includes all the reflection needed, but setting
KeepAlive = false on every HttpWebRequest will keep the client-side .Net SSL session cache clear.
SslEmptyCache may be required to clear caching of SSL-SessionID and/or tickets done by SCHANNEL at the native-code level.
I think you're looking for the HttpRequestCacheLevel Enumeration value NoCacheNoStore
You can then overwrite the HttpRequestCachePolicy