Вы пытаетесь получить поведение, основанное на выборе, которое обеспечивает ListBox? Если нет, используйте ItemsControl (и предоставьте ItemsPanel, как показано ниже).
Причина, по которой он не идет в горизонтальном направлении, заключается в том, что у ItemsPresenter в конечном итоге есть своя панель, в которой он размещает элементы. Он не вставляет каждый элемент отдельно в вашу StackPanel (или WrapPanel), а помещает их в свою собственную панель
То, что вы хотите сделать, это указать значение для ItemsPanel следующим образом:
<ListBox ItemTemplate="{StaticResource dirtSimple}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>