Практично ли это делать?Может быть, путем обновления верхнего поля кнопок значением scrollY для setOnScrollChangeListener?
sv.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY ->
val buttonLayoutParams = button.getLayoutParams() as MarginLayoutParams ;
buttonLayoutParams.topMargin = scrollY ;
button.setLayoutParams(buttonLayoutParams)
}