Я так понял, главная проблема у Вас, это номера. Если не очень заморачиваться, можно сделать текстовый слой, с экспершенами привязанными к индексу, и дублировать их (слои). Тогда значение и позиция слоя будут идти с указанным шагом.
Например:
Source Text: "index*15 + 'm'" - даст номер с шагом в 15 метров.
Position: "[value[0], index*150]" - Будет смещать слои по вертикали на 150 пикселей, при этом останеться возможность двигать их по горизонтали назависимо. Или сделать например, проверку кратности номера, и указать дополнительное смещение для всех круглых чисел.
Естественно, это синтетические примеры, значения и формула в вашем случае могут отличаться. Например: Вы можете захотеть суммировать положение к какому-то конкретному значению, но суть не изменится.
Потом наделать столько копий их, сколько нужно. Контролы и нули можно привязать на отдельные параметры, под свою задачу.