Я сделал это с помощью списка в Blend внутри ItemTemplate, создав левую границу и правую границу, которые находятся в одном и том же пространстве. LeftBorder определено с cornerRadius 10,0,0,10, а правое с cornerRadius 0,10,10,0. Затем я устанавливаю для них непрозрачность 0 (вы можете использовать видимость, если вы предпочитаете) и устанавливаю ChangePropertyAction для обоих загруженных событий, зависящих от первого и последнего элемента в вашем списке.
Это плохая часть, мне нужно было сделать это условно для элементов в вашем списке, но вы можете определить другое свойство и установить его в качестве первого и последнего или создать несколько шаблонов, которые вы устанавливаете, если в список из элемента управления (отсутствует в шаблоне).
Если вы считаете, что это может быть вам интересно, дайте мне знать, и я опубликую в своем блоге, а также постараюсь внести пару изменений в вашу ситуацию. Я не уверен, как загрузить проект сюда.