Can I move the description of a form field between the label and the field?
You need to override theme_form_element in your theme template.php to change the order of the form field description. See below code which will change order for all fields.

If you would like to change for only one field, then add a if condition by inspecting $element array only for your field !

function yourtheme_form_element($variables) {
  $element = &amp;$variables['element'];
  // This is also used in the installer, pre-database setup.
  $t = get_t();

  // This function is invoked as theme wrapper, but the rendered form element
  // may not necessarily have been processed by form_builder().
  $element += array(
    '#title_display' =&gt; 'before',
  );

  // Add element #id for #type 'item'.
  if (isset($element['#markup']) &amp;&amp; !empty($element['#id'])) {
    $attributes['id'] = $element['#id'];
  }
  // Add element's #type and #name as class to aid with JS/CSS selectors.
  $attributes['class'] = array('form-item');
  if (!empty($element['#type'])) {
    $attributes['class'][] = 'form-type-' . strtr($element['#type'], '_', '-');
  }
  if (!empty($element['#name'])) {
    $attributes['class'][] = 'form-item-' . strtr($element['#name'], array(' ' =&gt; '-', '_' =&gt; '-', '[' =&gt; '-', ']' =&gt; ''));
  }
  // Add a class for disabled elements to facilitate cross-browser styling.
  if (!empty($element['#attributes']['disabled'])) {
    $attributes['class'][] = 'form-disabled';
  }
  $output = '&lt;div' . drupal_attributes($attributes) . '&gt;' . "\n";

  // If #title is not set, we don't display any label or required marker.
  if (!isset($element['#title'])) {
    $element['#title_display'] = 'none';
  }
  $prefix = isset($element['#field_prefix']) ? '&lt;span class="field-prefix"&gt;' . $element['#field_prefix'] . '&lt;/span&gt; ' : '';
  $suffix = isset($element['#field_suffix']) ? ' &lt;span class="field-suffix"&gt;' . $element['#field_suffix'] . '&lt;/span&gt;' : '';
   $element_description = "";
  if (!empty($element['#description'])) {
    $element_description = '&lt;div class="description"&gt;' . $element['#description'] . "&lt;/div&gt;\n";
  }
  switch ($element['#title_display']) {
    case 'before':
    case 'invisible':
      $output .= ' ' . theme('form_element_label', $variables);
      $output .= $element_description;
      $output .= ' ' . $prefix . $element['#children'] . $suffix . "\n";
      break;

    case 'after':
      $output .= ' ' . $prefix . $element['#children'] . $suffix;
      $output .= ' ' . theme('form_element_label', $variables) . "\n";

      break;

    case 'none':
    case 'attribute':
      // Output no label and no required marker, only the children.
      $output .= $element_description;
      $output .= ' ' . $prefix . $element['#children'] . $suffix . "\n";
      break;
  }
  $output .= "&lt;/div&gt;\n";

  return $output;
}


Other way &amp; simple way to solve this problem is use jQuery to change the position. This will help you !