I'm currently working on the XmlRpcClientProtocol class to add support for async calls. I was hoping this would be pretty straightforward by deriving from the abstract WebClientProtocol class in the same way that SoapHttpClientProtocol does. Unfortunately this is not possible because some members of WebClientProtocol are internal and so cannot be accessed in a derived class which is outside the System.Web.Services assembly. So I have to code much more of the functionality myself.
An essential tool for any dev work involving HTTP is Simon Fell's proxyTrace.