"Add another item" button before field
The function theme_field_multiple_value_form($variables) is used (by default) to generate the HTML for the multi-value field. In this function the 'Add another item' button is hardcoded after the table:

$output = '&lt;div class="form-item"&gt;';
$output .= theme('table', array('header' =&gt; $header, 'rows' =&gt; $rows, 'attributes' =&gt; array('id' =&gt; $table_id, 'class' =&gt; array('field-multiple-table'))));
$output .= $element['#description'] ? '&lt;div class="description"&gt;' . $element['#description'] . '&lt;/div&gt;' : '';
$output .= '&lt;div class="clearfix"&gt;' . drupal_render($add_more_button) . '&lt;/div&gt;';
$output .= '&lt;/div&gt;';


So, what you could do is override the theme function, and print the rendering of '$add_more_button' before the rendering of the table.

As a side note: if you want to override the theme function using a custom module, you could use hook_theme_registry_alter(&amp;$theme_registry) and set $theme_registry['field_multiple_value_form']['function'] to your customized "theme" function.