Write some custom code in which you use a variation of the approach as explained in Hook into and Preprocess Drupal Messages? Here is a quote from it:
The following example hides all error/warning messages from anonymous users and user's who don't have the 'administer nodes' permission. You can easily add your own conditions to filter out which message types should be displayed to who.
function mytheme_status_messages ($display = NULL) {
$output = '';
foreach (drupal_get_messages($display) as $type => $messages) {
// skip all error/warning messages for anonymous users
if (!user_is_logged_in() && ($type == "error" || $type == "warning")) { continue; }
// skip error/warning messages for users who don't have the 'administer nodes' permission
else if (!user_access('administer nodes') && ($type == "error" || $type == "warning")) { continue; }
...