First off, you don't need to invent your own class: there is a Stopwatch class as part of the System.Diagnostics namespace which does that, but better, and with a higher precision:
http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch(v=vs.110).aspx[
^]
And my system does this:
byte[] data = File.ReadAllBytes(@"D:\Temp\Output.bin");
in ~15 milliseconds, and that's a 3.5 MB test file on a much lower spec PC that you are using.
The slowness you are seeing is not the read: it's the load of the data into your listbox.
Are you seriously expecting your users to read a megabyte of data in one million little list box entries? Because if I was one of your users, I'd hunt you down and remonstrate with you...:laugh:
I think you want to seriously reconsider your UI, rather than complain about it's lack of speed!