This is one of the finest technique I found so far to theme webform form. In fact, it could be used for any form generated through Drupal FORM API.
For Example, I needed certain elements of the form to be on one line (horizontally placed), I could do something like below. This is just override function of "template_preprocess_webform_form" provided by webform module. Place this in your theme's template.php file.
function garland_preprocess_webform_form(&$vars) {<br />
drupal_add_css(drupal_get_path('module', 'webform') . '/css/webform.css');<br />
drupal_add_js(drupal_get_path('module', 'webform') . '/js/webform.js');<br />
<br />
$vars['form']['submitted']['name']['#prefix'] = '<table border="0"><tbody style="border: 0px;"><tr><td>';<br />
$vars['form']['submitted']['name']['#suffix'] = '</td>';<br />
$vars['form']['submitted']['phone']['#prefix'] = '<td>';<br />
$vars['form']['submitted']['phone']['#suffix'] = '</td>';<br />
$vars['form']['submitted']['city']['#prefix'] = '<td>';<br />
$vars['form']['submitted']['city']['#suffix'] = '</td></tr></tbody></table>';<br />
<br />
if (isset($vars['form']['details']['nid']['#value'])) {<br />
$vars['nid'] = $vars['form']['details']['nid']['#value'];<br />
}<br />
elseif (isset($vars['form']['submission']['#value'])) {<br />
$vars['nid'] = $vars['form']['submission']['#value']->nid;<br />
}<br />
}That's it! You could do almost anything you want with this technique!