I am looking for a solution, too.
So far I found this:
http://www.jakeri.net/2009/12/custom-callout-bubble-in-mkmapview-final-solution/
It looks good, but it provides its own view as a callout and draws it on a MKMapView. I am looking for a solution to set the calloutView which is used by the MKAnnotationView, if that is possible. The reason is that I want the normal "select" event of an MKAnnotationView to trigger the callout. (Although the code detects the "select" event, it uses its own observer to do the job. Howver, I concede that perhaps this may be the right way).
Although leftCalloutAccessoryView and rightCalloutAccessoryView can be found in MKAnnotationView, I can't find the property e.g. calloutView.