Вместо использования canvas, почему бы не использовать tktable.Вся работа по рисованию линий и форматированию элементов в столбцы уже выполнена.
#!/usr/bin/tclsh
# We need these otherwise it will not work
package require sqlite3
package require Tktable
# open database - in this case stockbox.db in the current directory
sqlite3 db stockbox.db
# Set up the titles
set models(0,0) "Model"
set models(0,1) "Width"
set models(0,2) "Length"
# Start with 1 for the title
set rows 1
set cols 3
# Perform query, extract result into models
db eval {SELECT model_id,width, length FROM tbl_model} {
set models($rows,0) $model_id
set models($rows,1) $width
set models($rows,2) $length
incr rows
}
db close
# Create the table
table .table -variable models -titlerows 1 -width $cols -height 10 -rows $rows -yscrollcommand ".ys set"
scrollbar .ys -command ".table yview"
pack .table .ys -side left -fill y