Perl, 185 char
200 (slightly broken)
199
197
195
193
187
185 characters. Last two newlines are significant. Complies with the spec.
map$X{+lc}+=!/^(.|the|and|to|i[nst]|o[rf])$/i,/[a-z]+/gfor<>;
$n=$n>($:=$X{$_}/(76-y+++c))?$n:$:for@w=(sort{$X{$b}-$X{$a}}%X)[0..21];
die map{$U='_'x($X{$_}/$n);" $U
"x!$z++,"|$U| $_
"}@w
First line loads counts of valid words into %X.
The second line computes minimum scaling factor so that all output lines will be <= 80 characters.
The third line (contains two newline characters) produces the output.