On the question of how to change the Table View programmatically, I finally read the relevant section of the docs, which is titled:
Programmatically Modifying a Controller’s Contents
Make the array controller an outlet, then respond to the add button by modifying it like so:
The change will propagate back to the data source automatically. Note that you will have to do a little more fiddling to deal with a multiple selection, or just disable it.