Convert CSV to Table
Try (Dyalog) APL, 38 43 bytes

Last input line must have a trailing newline.
{{(⊃⍵)⍪⍉⍪↑¨↓⍉↑1↓⍵}s¨',',¨(s←1↓¨⊢⊂⍨⊢=⊃)¯1⌽⍵}

Try it online! In the offline version of Dyalog APL, execute ]boxing ON -style=min for the same effect.
Explanation
{ ... } an anonymous function where ⍵ represents the argument:
 ¯1 ⌽ ⍵ rotate the trailing newline to the front
 (s ←  ... ) define the function s as follows, and apply it
  1 ↓¨ drop the first character of each
  ⊢ ⊂⍨ line, split where
  ⊃ = ⊢ the first character equals the characters in the string
 ',' ,¨ then prepend a comma to each line
 s¨ apply the function s to each line
 { ... } now apply the following anonymous function:
  1 ↓ ⍵ drop the first element (the row headers)
  ↓ ⍉ ↑ transpose the list of rows into list of columns
  ↑¨ make each element (a list of entries) into a matrix of padded entries
  ⍉ ⍪ make into one-column matrix, then transpose into one-row matrix
  (⊃⍵) ⍪ put the argument's first element (the list of headers) on top`
Note: While the line drawing characters are not explicitly used in my solution, they are part of the APL character set, and would also be counted as single bytes.