Overriding the OnPaint event would yield faster results. Your code would be very similar as well. You wouldn't do it on a PictureBox though. Most advanced graphics techniques start off with throwing away all the useless controls like PictureBoxes and draw directly on the form.
This is written in VB6..
You will need to look at the GetDIBits and SetDIBits APIs. If you are unsure how to use APIs, then you won't get anything faster.