Roller coaster of numbers
Ruby, 167 bytes

l={}
y=p=n=0
101.times{|i|
d/=d.abs if(d=n-p)!=0
l[y-=d]||=Array.new 101," "*4
l[y][i]=n.to_s.ljust 4
p,n=n,rand(18)-9}
puts l.sort_by(&amp;:first).map(&amp;:last).map(&amp;:join)


First time golfing Ruby, so I'm sure I'm missing something.