Я считаю, что вы можете использовать триггер в стиле, чтобы достичь этого.Вы можете расположить изображение по левому краю, а в триггере изменить его на правое.
Что-то похожее на:
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<!-- Change image position here -->
</Trigger>
<Style.Triggers>
Подробнее о том, как использовать AlternationIndex здесь .
Редактировать - Рабочий образец
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<DockPanel>
<Image Source="/WpfApplication;component/Images/TestImage.jpg" DockPanel.Dock="Left" x:Name="rowImage"/>
<TextBlock Text="Testing..." Background="{TemplateBinding Background}"/>
</DockPanel>
<ControlTemplate.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="DockPanel.Dock" TargetName="rowImage" Value="Right" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>