Output MSB-set aligned, delimited ASCII
Python 3, 144 140 131 130 137 bytes
Damn bugs :(
O=&quot;&quot;
for Q in input():
 C=&quot;X%07dX&quot;%int(bin(ord(Q))[2:])
 while&quot;1&quot;&gt;C[8-len(O)%8]:C=&quot;.&quot;+C
 O+=C
O+=&quot;.&quot;
while O:print((O+&quot;.&quot;*8)[:8]);O=O[8:]

This is really straight forward.
Ungolfed with explanation
# initialize output buffer
output = &quot;&quot;
# loop through input
for char in input():
    # get charcode, binary, remove 0b, parse as int, format
    code = &quot;X%07dX&quot; % int(bin(ord(char))[2:])
    # pad code while the line starting character would be 0
    while &quot;1&quot; &gt; code[8 - len(output) % 8]:
        code = &quot;.&quot; + code
    # append result to output buffer
    output += code
# add dot to ensure padding in end
output += &quot;.&quot;
# loop while any output is left
while output:
    # print line of output, with padding
    print((output + &quot;.&quot; * 8)[:8])
    # remove printed output
    output = output[8:]