Use hierarchical select module to create select list. This will give you a hierarchy with '-' symbol in front all child elements. Then you can alter the form with hook_form_alter function.
function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
if (($form_id == 'your_form_id')) {
foreach ($form['tid']['#options'] as $term_key => $term) {
// Check if this is a child by looking for '-' as first char in string
$term_value = reset($term->option);
if($term_value[0] == '-') {
unset($form['tid']['#options'][$term_key]);
}
}
}
}