Well, I've found one solution that isn't pretty but will do for the moment.
renderTable uses xtable to render the HTML table, and you can define your own sanitization function while at it, see
http://cran.r-project.org/web/packages/xtable/vignettes/xtableGallery.pdf (p. 7)
Here, I simply replace the column header 'Widget' with a string that defines the script:
output$table <- renderTable({
...
}, include.rownames = FALSE, sanitize.text.function = function(s) sub("Widget", "<script type=\"text/javascript\" src=\"
http://impactstory.org/embed/v1/impactstory.js\"></script>", s))
For a reason I don't yet understand, there is a set of double widgets at first.
Thanks for your patience.