ItemTemplate используется для указания DataTemplate, используемого для визуализации элемента в вашем ListBox.
ItemPanelTemplate используется для указания панели, используемой для упорядочения дочерних элементов вашего ListBox.
Например, если ваш ListBox связан с ObservableCollection, вы должны указать DataTemplate, чтобы сообщить ему, как визуализировать каждый объект Person.
<ListBox ItemsSource={Binding Persons}>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text={Binding FirstName}/>
<TextBlock Text={Binding LastName}/>
<TextBlock Text={Binding Age}/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Это расположит каждый элемент по вертикали, поскольку ListBox по умолчанию использует StackPanel. Если вы хотите изменить это поведение, используйте свойство ItemPanelTemplate:
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
Вы даже можете изменить StackPanel на любую другую панель (например, WrapPanel).