Здесь я заметил две вещи, потому что у меня была та же проблема, и я не смог ее решить так, как вы пытаетесь.
Во-первых, вам не нужно явно помещать ListBoxItem в ваш DataTemplate. Он создается для вас автоматически, поэтому у вас есть элемент ListBoxItem внутри того, который был создан для вас. Я проверил это в Snoop для подтверждения.
Во-вторых, и я не знаю точно, почему, но я не смог получить поведение растяжения из атрибутов выравнивания. Я изменил его, чтобы использовать привязку RelativeSource для атрибута Width к свойству ActualWidth содержащего ListBoxItem. Это сработало для меня.
Width="{Binding RelativeSource={RelativeSource
AncestorType={x:Type ListBoxItem}}, Path=ActualWidth}"
Если вам нужно установить свойства стиля в ListBoxItem, который неявно создан для вас, используйте элемент Style внутри элемента ListBox.ItemContainerStyle.
Надеюсь, это поможет ...