If you search back the email list to
"Attempting a packet table with compound datatype with variable length strings"
you'll see some example c code that does it. The high level c API's http://www.hdfgroup.org/HDF5/doc/HL/RM_H5PT.html have more of the functionality that I've needed. It uses H5PTcreate_fl instead of the vl now.
This code produces vlen packet table but the only access I've found is the h5dump tool which shows it succeeds.