Thanks! Please replace my original reply's submission with the following, and you can turn off access for assistive devices (assuming you want your icons where your menu bar is).
set screen_Rez to do shell script "/usr/sbin/system_profiler SPDisplaysDataType | grep Resolution"
set screenlist to paragraphs of screen_Rez
repeat with i in screenlist
set screenstuff to contents of i
set screen_width to word 2 of screenstuff as number
set screen_height to word 4 of screenstuff as number
set screensize to {screen_width, screen_height}
end repeat
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