So the location seems to be hardcoded irrespective of the actual launcher layout (which may have more columns than 4).
I appears that $LIBDIR/qt5/qml/Sailfish/Tutorial/private/LauncherGrid.qml should expose its row and column count (via grid.rows and grid.models, and possibly the index of the clock launcher in its grid.model.
clockIcon could then determine its grid coordinates via function.