You can use Field Group Ajaxified Multipage module plus Inline Form Errors, it should work.
The most important code is:
$form['actions']['next'] = array(
'#type' => 'submit',
'#value' => t('Next step'),
'#submit' => array('_field_group_ajaxified_multipage_form_submit'),
'#ajax' => array(
'wrapper' => $wrapper_id,
'callback' => '_field_group_ajaxified_multipage_form_callback',
),
);
}
if ($step > 1) {
$form['actions']['prev'] = array(
'#type' => 'submit',
'#value' => t("Previous step"),
// Since all info will be discarded, don't validate on 'prev'.
'#limit_validation_errors' => array(),
// #submit is required to use #limit_validation_errors
'#submit' => array('_field_group_ajaxified_multipage_form_submit'),
'#ajax' => array(
'wrapper' => $wrapper_id,
'callback' => '_field_group_ajaxified_multipage_form_callback',
),
);
Alternatively use: Clientside Validation module (see: Clientside Validation Code Examples).
Check also the outstanding ticket for Field Group module: Validation per multipage for some other ideas.
See also Drupal tutorial: Ten Step-by-Step Code Samples for Learning Form API - especially: Basic form with button validation and Multistep form