Understanding SevSeg
I don't understand the purpose of the B0 at the beginning of each byte.


That's just Arduino's rather weird way of doing binary constants. For example, in the file binary.h are lines and lines of stuff like this:

#define B1011 11
#define B01011 11
#define B001011 11
#define B0001011 11
#define B00001011 11
#define B1100 12
#define B01100 12
#define B001100 12
#define B0001100 12
#define B00001100 12


A better way is to use standard C++ constants, eg.

0b00001100


instead of:

B00001100





  Could I use the 0 column to encode my eighth segment?


Yes, they are just bytes, so you can use all 8 bits.