rlwrap, a wrapper for GNU readline. can be used with an interactive Tcl to provide readline editing and command history functionality.
To use it with tclsh, start tclsh with:
rlwrap tclsh
Useful options are -c (file name completion) and -f (add words from a file to the completion list).
To use rlwrap with tclsh with file name completion type:
rlwrap -c tclsh
It would be nice to have a file of all words used in Tcl: commands and subcommands to set rlwrap up using the -f option.
info commands and info procs could help with that. Maybe there are some *.syn files out there to provide such a database.
RS 2013-11-01: For more convenience, you can put
alias tclsh='rlwrap -c tclsh8.5'
in your .bashrc or a similar startup file. On Ubuntu, rlwrap can be fetched with apt-get install.