Делайте это внутри стиля контейнера элемента, а не DataTemplate.Т.е. определите свой собственный стиль ListBoxItem
и выделите только то, что требуется.Например:
<Style x:Key="MyStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="SnapsToDevicePixels" Value="true"/>
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Grid>
<Border
Name="Border"
Margin="0, 0, 0, 1"
Padding="2"
SnapsToDevicePixels="true">
<ContentPresenter />
</Border>
<Border Grid.Row="1" BorderThickness="0, 0, 0, 1" BorderBrush="Black"
SnapsToDevicePixels="True"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter TargetName="Border" Property="Background" Value="#DDDDDD"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="#888888"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
А затем:
<ListBox ItemContainerStyle="{StaticResource MyStyle}">