1.) DO YOU or DO YOU NOT need to have a 16MHz crystal/caps set-up to burn a 3.3v/8MHz bootloader?
IF your processor is factory fresh you DO NOT need a 16 MHz crystal to (continue to) use the internal 8 MHz clock.
IF your processor HAS ALREADY been set to use a crystal clock (typically done when an Arduino bootloader is installed) you DO need to provide a clock:
Crystal and load capacitors
Ceramic resonator
External clock injected through the X1 pin.
The serial programming hardware uses the system clock. If the fuses are set to expect a crystal then the system clock won't run without a crystal or equivalent. The clock doesn't have to be 16 MHz. Several people have made versions of ArduinoISP that provide an 8 MHz clock on Pin 9. This can be connected to the X1 pin of the target processor the clock the target in the absence of a crystal.
This will NOT be possible.. unless I flash all chips before using them assembly.. (not very practical.. to flash or test after for 328TQFP chips)
2.) DO I need to power the board with +5v or with +3.3v to flash bootloader?
No. Any voltage valid for the clock speed should work. If you are clocking your target processor at 4 MHz you can program it at 1.8V.
NOTES: The bootloader doesn't care at all what voltage the processor is getting. Neither does it care if the clock is crystal or internal. Any "8 MHz" bootloader should run fine with the internal 8MHz system clock. The "16 MHz" bootloaders will also work with the internal 8MHz system clock but the serial port baud rate calculations will be assuming a 16 MHz clock so the actual baud rate will be half the specified baud rate. If you use the default bootloader for the UNO (optiboot_atmega328.hex) you will need a boards.txt entry that specifies "myboard.upload.speed=57600" instead of "uno.upload.speed=115200".