Я подозреваю, что здесь вы видите настраиваемую панель макета, которая имеет четко определенную высоту и затем переносится в следующий столбец. Затем вы можете использовать ItemsPanelTemplate элемента управления списком, чтобы использовать новую пользовательскую панель.
Что касается разработки самой панели, я подозреваю, что либо перенос, либо наследование от Grid будет отличным первым выбором. Затем панель может сама управлять определениями столбцов в зависимости от количества содержащихся в них элементов.
Чтобы определить расположение отдельных элементов, я подозреваю, что использование ActualHeight для определения того, когда другой элемент вызовет переполнение столбца, и использование этого для перехода к следующему столбцу будет оптимальным решением. Я полагаю, что использование одной вертикальной панели стека без рамки или отступов внутри каждого столбца может облегчить разгрузку макета на эти элементы управления, но я полагаю, что вам все равно придется определить, на какую панель выложить элементы в зависимости от высоты предмета.