Create an ASCII-to-hex table for Mark Watney
JavaScript (ES6), 323 332 353

Edit I managed to shorten this a bit
Step 1, believe it or not, using an array of 16 chars is shorter than toString + toUpperCase
Step 2, fiddling around to use .map instead of for, so that I can transform it all to a single expression function, avoding console.log and/or return.

Edit 2 Moved DEL at place 0, idea borrowed from Cole Cameron

H=x=&gt;(x=[...'0123456789ABCDEF']).map((d,r)=&gt;x[S='slice'](0,8).map(c=&gt;(o+=`   ${w=c*16+r} ${c+d} `[S](-z)+("DELNULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US ".substr((w+1&amp;127)*3,3)||String.fromCharCode(w)),z=c&lt;5?8:9,'Dec Hex   '[S](0,c&lt;2?z+2:z)),o+=`
`,z=7).join` `,o='')[0]+o


MD5: 41B6ECDE6A3A1324BE4836871D8354FE

Pixel perfect, I'd say

LESS GOLFED

H=x=&gt;(
  x=[...'0123456789ABCDEF'],
  a="DELNULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US ",
  o='', // the string o will contain the body (16 rows)
  x.map((d,r)=&gt; ( // main loop, r is thr row number, d is the second hex digit to print
    o+=`\n`, z=7,
    x.slice(0,8).map(c=&gt; // loop on 8 columns, c is both column number and digit to print
      (
        // append the column to o
        o += `   ${w=c*16+r} ${c+d} `.slice(-z) + (a.substr((w+1&amp;127)*3,3)||String.fromCharCode(w)), 
        z=c&lt;5?8:9, // adjust the column size
        'Dec Hex   '.slice(0,c&lt;2?z+2:z) // column head, right size
      ) // the .map result is the 8 columns heading
    ).join` ` // join the heading in a single string
  ))[0] // any element of the result map is the heading
  + o // concatenate the body
)


Test



H=x=&gt;(x=[...'0123456789ABCDEF']).map((d,r)=&gt;x[S='slice'](0,8).map(c=&gt;(o+=`   ${w=c*16+r} ${c+d} `[S](-z)+("DELNULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US ".substr((w+1&amp;127)*3,3)||String.fromCharCode(w)),z=c&lt;5?8:9,'Dec Hex   '[S](0,c&lt;2?z+2:z)),o+=`
`,z=7).join` `,o='')[0]+o

/* TEST */ 
console.log=x=&gt;O.textContent=x

console.log(H())
&lt;pre id=O&gt;&lt;/pre&gt;