Specific number of values in field setting per role
Sure.  You can manipulate the multiple characteristic of the select via a form_alter() hook.  You just have to make sure the field itself is a multiple value field to start with, and then do something along these lines:

function YOURMODULE_form_alter(&amp;$form, $form_state, $form_id) {
  global $user;

  if ( /* your user is NOT an admin */ ) {

    if ($form_id == 'YOURNODETYPE_node_form') {

      $form['#field_info']['field_NAMEOFTHEFIELD']['multiple']=FALSE;

    }

  }

  // any other form alters here

}


If this doesn't work out of the box for you, a drupal_set_message() and print_r() of your $form will give you a dump of what you have to work with, and you basically just want to find the multiple array key for the field in question and change it to FALSE for non admins.

But once again, you need to make this field a multiple value field to begin with, but you then don't allow non-admins to enter multiple values into it on the form.

(More information on the Form API can be found here for D7 if this doesn't work as the above is just a quick edit on a D6 testbed here)