Form element layout module (fel.module) provides the basic support for altering the primitives of a single form element: Title, description and the input element. It introduces a new attribute #description_display that in tandem with the existing #title_display allows for some interesting configurations.
By default it doesn't do anything, so enabling this module won't do anything until you tell it to:
$form['example'] = array( '#type' => 'textfield', '#title' => t("Example input"), '#description' => t("Example description of what this element does."), '#description_display' => 'before', // Default is 'after'. );
This will render the description before the input element and this works for all element types core provides.