But setting icon (iCon) size is desirable, as well.
Anyway, it appears that you don't have to use UI scripting to set grid spacing, as this script generated by Desktop Wrap illustrates.
tell application "System Events"
tell process "Finder"
set screensize to size of first scroll area whose position is {0, 0}
end tell
end tell
set {_width, _height} to screensize
set firstcol_dist to 0.5 * 140
set iconcol_dist to ((_height - firstcol_dist) / 17)
set heightdistance to (_height - iconcol_dist)
set col1 to _width - firstcol_dist
set a to col1
set b to 52
tell application "Finder"
set disklist to ((every item of desktop) whose class is disk)
set itemlist to (every item of desktop) whose class is not disk
if "Kind" is in {"Name"} then
set desktoplist to sort itemlist by name
else if "Kind" is in {"Modification Date"} then
set desktoplist to sort itemlist by modification date
else if "Kind" is in {"Creation Date"} then
set desktoplist to sort itemlist by creation date
else if "Kind" is in {"Kind"} then
set desktoplist to sort itemlist by kind
end if
if 0 is 1 then
set desktoplist to reverse of itemlist
end if
set newlist to (disklist & desktoplist)
set this_item to 0
repeat with i from 1 to count of newlist
set this_item to this_item + 1
set diskcount to (count of disklist)
if this_item > diskcount then
set desktarg to (item (i - diskcount) of desktoplist)
else
set desktarg to (item i of disklist)
end if
if this_item / 17 = (this_item / 17 as integer) then
if this_item = 17 then
set a to col1 - 7
if this_item > diskcount then
set (desktop position of desktarg) to {a, b}
else
set (desktop position of item i) to {a, b}
end if
else
set a to ((_width - ((round (this_item / 17)) * (147))) + (firstcol_dist))
if b > heightdistance then
set b to iconcol_dist
else
set b to (b + iconcol_dist)
end if
if this_item > diskcount then
set (desktop position of desktarg) to {a, b}
else
set (desktop position of item i) to {a, b}
end if
end if
else if this_item / 17 is not (this_item / 17 as integer) then
if this_item < 17 then
set a to col1 - 7
if this_item > diskcount then
set (desktop position of desktarg) to {a, b}
else
set (desktop position of item i) to {a, b}
end if
if b > heightdistance then
set b to iconcol_dist
else
set b to (b + iconcol_dist)
end if
else if this_item = 17 then
set a to col1 - 7
if this_item > diskcount then
set (desktop position of desktarg) to {a, b}
else
set (desktop position of item i) to {a, b}
end if
else
set a to ((_width - ((round (this_item / 17) rounding up) * (147))) + (firstcol_dist))
if b > heightdistance - firstcol_dist then
set b to 52
else
set b to (b + iconcol_dist)
end if
if this_item > diskcount then
set (desktop position of desktarg) to {a, b}
else
set (desktop position of item i) to {a, b}
end if
end if
end if
end repeat
end tell