wp_nav_menu add some element to container

This is fairly straightforward, assuming you have access to the php files.

In the template that generates the menu, modify the wp_nav_menu call to specify container = FALSE, and to provide the container and additional div manually in the surrounding HTML.

Without knowing your code in advance, one method would be to alter it as follows:

<nav id="my-menu"><div class="additional"></div>
    <?php 
        // Replicate the args from the original code for the most part
        $args = array(
            'theme_location' => 'primary', // Or whatever the original was
            'container'      => FALSE, // This tells it to not put a container around it
            'echo'           => TRUE, // again, whatever original was
            // .. any other args from original code ...
        );
        wp_nav_menu($args);
    ?>
</nav>

EDIT:
Knowing that the menu needs to be modified at generation, then the answer changes a bit:

You need to create a custom menu walker

Fundamentals below. Modify based on your needs, reference the Walker article above:

class Custom_Walker_Nav_Menu extends Walker_Nav_Menu {
  function start_el ( &$output, $item, $depth = 0, $args = array(), $id = 0 )     {
    // Copy all the start_el code from source, and modify
  }

  function end_el( &$output, $item, $depth = 0, $args = array() ) {
    // Copy all the end_el code from source, and modify
  }
}

Then, in your theme files, you can call wp_nav_menu like this:

wp_nav_menu(array(
  'theme_location' => 'main',
  'container' => false,
  'menu_id' => 'nav',
  'depth' => 1,
  // This one is the important part:
  'walker' => new Custom_Walker_Nav_Menu
));