The MPConnection class seems more complicated than it needs to be. __MPConnectionActiveList seems to serve no purpose, was it intended to ensure the object was not released while the NSURLConnection was working? If so, then it's unnecessary because NSURLConnection is documented to retain its delegate.
It seems also that requestRuns is also unnecessary if you require that the caller doesn't fire off multiple simultaneous requests with the same MPConnection object, which seems reasonable since it's just as easy to make multiple MPConnection objects. Instead of a requestRuns dict, each would have simple members for the single set of NSURLConnection, NSInvocation and userData