Берешь функцию, которая описывает нужную тебе кривую и ищешь координаты равномерно распределенных точек(количество объектов) на этой кривой, кладешь их в массив и расставляешь элементы через js редактируя inline стили.
border по конкретным краям можно сделать при помощи атрибутов border-right, border-left, border-bottom, border-top. Градиент же можно задать при помощи border-image: linear-gradient(...)
Также можешь попробовать через псевдо-элементы.
А вообще, не проще ли сделать такую картинку в графическом редакторе? Или вам такой border для других целей нужен?