You're using 38,400 baud (BPS), that gives an absolute maximum transfer of 3,840 bytes per second - as you're using 10 bit resolution, you need to send two bytes per reading, which for two beams is 4 bytes in total. This gives 3840/4=960 - 960 samples per second, ignoring the time actually taken to read the samples.
Dropping to one beam would double this, to 1920 samples per second, and dropping to 8 bit resolution would double it again, to 3840 samples per second.
As it stands your bandwidth is only about 200Hz or so, and you should put lowpass filters on the inputs at this sort of frequency.
Like I said before, more a datalogger than a scope - but still VERY useful.