Вот способ достичь того, что вы хотите. Предположим, есть меню вроде:
<Menu>
<MenuItem Header="AAA" SubmenuOpened="MenuItem_SubmenuOpened">
<MenuItem Header="111"/>
</MenuItem>
</Menu>
Затем в коде позади мы можем настроить Popup
подменю, например:
private void MenuItem_SubmenuOpened(object sender, RoutedEventArgs e)
{
MenuItem owner = (MenuItem)sender;
Popup child = (Popup)owner.Template.FindName("PART_Popup", owner);
child.Placement = PlacementMode.Left;
child.HorizontalOffset = owner.ActualWidth;
child.VerticalOffset = owner.ActualHeight;
}