Here is an example of putting heading (fieldset) on a comment form that I found a while back: click here.
Basically you need to do a hook_form_alter().
Start by creating a field set:
fucntion HOOK_form_FORM_ID_alter() {
$form['project_report_information'] = array(
'#type' => 'fieldset',
'#title' => t('Project Report Information'),
'#collapsible' => FALSE,
);
Next, add your fields to the field set and remove the field outside the fieldset:
$form['project_report_information']['subject'] = $form['your_field']; //add to field set
unset($form['your_field']); //remove field outside
$form['project_report_information']['your_field']['#weight'] = -10; //of fieldset
Now repeat this for all fields and fieldsets you want.
Look over the link for a more detailed example of someone doing this. What you want is about half way down the page.