Get category ID from nav menu

This is quite complex (both the question and the way to achieve what was asked for).

You would have to set up a new Walker. In fact, you only need a custom start_el function, in which you check if you need/want to build a pull down area or not.

You (could) do this with respect to $item->object_id. Fetch the post, and check for whatever you like (certain post type, get the category and act upon that, certain date etc.).

The output of the custom query you want to run is then added to the output (either to $item_output right before the last line, if you want to have it filtered, or to $output after the last line, if you don’t want to have the output/query filtered).

So, here is a blueprint of what I just described (incomplete code!):

class MyMenuWalker extends Walker_Nav_Menu {

    function start_el(&$output, $item, $depth, $args) {
        // ...

        // currently second last line
        $item_output .= $args->after;

        // THIS is where the pull down action is
        $current_post = get_post($item->object_id);
        if (... $current_post ...) {
            $pull_down_query = new WP_Query(array(...args...));
            // add (i.e., concatenate) query output to item output
        }

        // currently last line
        $output .= apply_filters('walker_nav_menu_start_el', $item_output, $item, $depth, $args);
    } // function start_el

} // class MyMenuWalker

Then, where you are calling wp_nav_menu, you add the walker:

wp_nav_menu(array(
    // other args
    'walker' => new MyMenuWalker(),
));

The rest is CSS…

I hope this gets you started.