Do you need to modify walker or hook into it unmodified?
Since there is filter provided for that id, it is easy to hook into. Try this:
add_filter( 'nav_menu_item_id', 'modify_menu_item_id' );
function modify_menu_item_id( $text ) {
static $myCounter;
if( !isset( $myCounter ) )
$myCounter = 0;
return 'menu-item-' . ++$myCounter;
}
Update Changing walker
// add to start of start_el method
static $myCounter;
if( !isset( $myCounter ) )
$myCounter = 0;
and
// change id lines to this
$id = $args->depth ? 'menu-item-' . $item->ID : 'menu-item-' . ++$myCounter;
$id = apply_filters('nav_menu_item_id', $id, $item, $args);
$id = strlen($id) ? ' id="' . esc_attr($id) . '"' : '';
I tried to exclude sub-menus by checking for current depth and I think it should work properly with multiple menus because each will get new instance of walker object.