Organize your form elements in groups then create your custom form template and organize these groups on your design.
I use standard code from default template to show each group where I want.
PHP:
<div class="col-medium span4">
<?php
$group = $this->groups['YOUR-GROUP-NAME'];
$this->group = $group;
?>
<fieldset class="<?php echo $group->class; ?>" id="group<?php echo $group->id;?>" style="<?php echo $group->css;?>">
<?php
if ($group->showLegend) :?>
<legend class="legend"><?php echo $group->title;?><span class="icon-menu-2" style="font-size:24px;"> </span></legend>
<?php
endif;
if (!empty($group->intro)) : ?>
<div class="groupintro"><?php echo $group->intro ?></div>
<?php
endif;
?>
<div class="block-elements">
<?php
$this->elements = $group->elements;
echo $this->loadTemplate($group->tmpl);
?>
</div>
<?php
if (!empty($group->outro)) : ?>
<div class="groupoutro"><?php echo $group->outro ?></div>
<?php endif; ?>
</fieldset>
</div>
?hus preserving the Fabrik structure.
I don't know is this best and right way, but work for me.