How to create form on users account page?
You'll have to define a form function using the drupal form API 
See this tutorial for more info on how to make your own forms. 

So the actual form function would look something like this

MY_FORM_FUNCTION($form, &amp;$form_state){
  // Build form array here 
  return $form; 
}

MY_FORM_FUNCTION_validate($form, &amp;$form_state){
  // Validate function here
}

MY_FORM_FUNCTION_submit($form, &amp;$form_state){
  // Submit function here
}


Now in the tutorial they use HOOK_menu to display the form on a page. But you can call drupal_get_form('MY_FORM_FUNCTION') from everywhere and generate a render array for the form. 

So this would show your form on the user page via HOOK_user_view_alter

 $account['form'] = drupal_get_form('MY_FORM_FUNCTION');