By default, it uses a "masonry" layout to populate the menu vertically. This means that when it looks for "next" position, it will find the position that is highest up ... That is why when it finds "2008", it will place it in the next gap below "2004". If it didn't do this, you would end up with some columns that would be very tall, and some very small, making the menu layout unsymmetric.
You can use the List Columns setting to create a manual layout.
As taken from the HELP for the list columns:
help wrote:List Columns
Advanced configuration of the list columns.
Empty (auto)
* Recommended
When left empty, the list will automatically calculate the amount of columns required to display in the list-menu. If the page contains less than 6 child-pages, it will simply create 1 column for each child-page. If the page contains 6 or more child-pages, items will be stacked into columns tetris-style.
Columns (number)
If you don't like the automatic columns, you can set the amount of columns for your list mega-menu here. All child-pages will be stacked into the amount of columns specified.
Advanced Config
Advanced configuration for the subsections in your list mega menu, which can be used to define the order of category-pages in your columns. This can be useful for full custom control of how child-pages are ordered into columns in the list.
Example
In the below example, we are stacking the category-pages into four columns. First column has page1 and page3, second column has page2, page7 and page8 and so on ...
1,3|2,7,8|4,5|6
See "Advanced Config" ...