form_set_error highlight single field in multiple value field
I solved this by using the delta of the field with the error. In this example, field_acceptable_domains is a multi-value text field and I'm using valid_url to validate each value.

// This is a multi-value field, so we need to loop through the values.
foreach ($form_state['values']['field_acceptable_domains'][LANGUAGE_NONE] as $delta =&gt; $url) {
  if (!valid_url($url['value']) &amp;&amp; !empty($url['value'])) {
    form_set_error('field_acceptable_domains][' . LANGUAGE_NONE . '][' . $delta, t('The domain %domain is not valid.', array('%domain' =&gt; $url['value'])));
  }
}