It is possible to do this using the backend nav menu support, using classes as markers that are then picked via the walker_nav_menu_start_el
filter ( which then do queries to grab posts and insert their markup )
e.g.
add_filter( 'walker_nav_menu_start_el', 'menu_show_media_post', 10, 4 );
function menu_show_media_post( $item_output="", $item = '', $depth="", $args="" ) {
global $post;
$query = false;
if ( is_array( $item->classes ) ) {
foreach( $item->classes as $class ) {
if ( $class == 'some_marker_class_to_watch_for_goes_here') {
$query = true;
}
}
}
if ( $query ) {
$args = array(
);
$q = new WP_Query($args);
if($q->have_posts()){
while($q->have_posts()){
$q->the_post();
// do stuff and append output to $item_output, dont echo it out
}
}
wp_reset_postdata();
}
return $item_output;
}
All in all this is a fairly advanced level thing to do.
If you want to go a step further you can add UI controls to the menu pull outs themselves, and store the data as post meta for each menu nav item. This would be a better way of doing it, but it’s not for the faint of heart as it requires JS code in the admin backend, and a custom walker to render out the initial html for the nav admin interface.