How do I set descriptions to each checkbox option
The #title will be displayed as a description next to the checkbox, description below it if you use single checkboxes in a for-loop.

You need to change it a bit:

$options = array('Option 1' =&gt; t('Description1'), 'Option2' =&gt; t('Description 2');
$i = 1;
foreach ($options as $title =&gt; $description) {
    $form['field_options']['option_' . $i]= array(
      '#type' =&gt; 'checkbox',
      '#title' =&gt; $title,
      '#description' =&gt; $description,
      '#default_value' =&gt; 0,
    );
  $i++;
}


Set the value with #default_value = 0; (not an array). 

About the 0 value in the array: From drupal.org Form API about checkboxes:
Description: Format a set of checkboxes. #options is an associative array, where the key is the #return_value of the checkbox and the value is displayed. The #options array cannot have a 0 key, as it would not be possible to discern checked and unchecked states.