NSOperationQueue *urlRequestsOperationQueue = [[NSOperationQueue alloc] init];
[urlRequestsOperationQueue setSuspended:YES];

for(NSURL* url in URLArray){
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
[NSURLConnection sendAsynchronousRequest:request queue: urlRequestsOperationQueue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
UIImage* serverImage = [UIImage imageWithData:data];
}];
}

[urlRequestsOperationQueue setSuspended:NO];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
[urlRequestsOperationQueue waitUntilAllOperationsAreFinished];
NSLog( @"OWARI DENGANA" );
});

なんて。動くのかどうかしらんが
逐一NSOperationQueueを作っているのが気になったので、+αで