I'm not sure what you are asking. You can do 800x600x32 bit color in QBasic or any other valid VESA mode. It's just not going to be fast, even in real-mode C its not. Plus in order to back buffer...well you can't because of QBasic's memory model limits. There are some tricks in assembly but I doubt you want to dive head first into them.
QBasic is a good language to begin on. But you must know when you have reached the limits of your language. It's not going to tell you when you have reached that limit, it is for you to decide. If you have to do some fancy tricks just to get something simple like 800x600x32 bit color, chances are that your language is not helping you and therefore it is time to switch to another language.
If you are used to QBasic then you might try Visual Basic 6. You can program for DirectX 8 with it, although DirectX is primarily designed to be used with C/C++. But you can get some very good graphics even in VB6 with DirectX 8.
If you are not familiar with types and objects in QB, I would brush up on those skills prior to attempting VB6.
Nearly the same as this in C:
x as integer
y as integer
x as double
y as double
z as double
vlocal as point3d
vworld as point3d
vview as point3d
pscreen as point2d
dim shared vertexlist as vertex
You can use interrupts in QB via the CALL INTERRUPT family of functions (SUBs).
vertex *vertexlist=new vertex;
To plot pixels in SVGA modes in QB you will need to use POKE to place each value in the correct location in video memory. You will also have to have a bank switching function. You might be able to point QB to the far bank swithing function of the video card using CALLS (formerly CALL ABSOLUTE) but I haven't tried that.
I use the interrupt (C: 0x10 - asm: 10h - QB: &H10) to bank switch. Check the RBIL for more info.