Commerce checkout form all pane errors to be displayed on top of form
As Ryan mentioned, it's difficult to change that behaviour server-side, however you could move the error messages to the top of the page with JavaScript instead.

e.g

style.css 

/* Hide checkout messages by default to show with JS later */
body.page-checkout .messages{
  display:none;
}


script.js 

Drupal.behaviors.moveCheckoutMessages = function (context) {
  $('body.page-checkout form .messages', context).each(function () {
    $('.region-content').prepend($(this));
    $(this).css({"display":"block"});
  });
}


A client-side approach like that should work.