В locationManager:didUpdateHeading:
примените соответствующее преобразование вращения к виду карты:
double headingInRadians = newHeading.trueHeading * M_PI / 180.0;
mapView.transform = CGAffineTransformMakeRotation(headingInRadians);
Рамка вида карты должна быть немного больше видимой области, чтобы при повороте не было пустых углов.