Semantically, you want checkboxes. Checkboxes exist for the express purpose of allowing a user to select a subset of available options. So the simplest approach would be:
1: A list of checkboxes representing the set of available partners
You could augment that by having a dynamic list of all the checkboxes that have been selected if the total list is too long to scan easily. But if the list really is that long, there are probably better options, like:
2: A custom checkbox-equivalent UI for selecting a subset of available partners
Depending on what kind of information is interesting to represent, something like the grid view you suggested would make sense here. And you could, also as you suggested, have a dynamic list showing what's been selected so far.
But if the list is really long, then I'd recommend taking a cue from The Humane Interface and let people use the keyboard for what it's good for:
3: Provide a typeahead text field so people can just type in the name of the partner that they're looking to select.
Obviously, that option works better if people know the names of the partners they're looking for (a) in advance and (b) with a reasonable degree of spelling correctness. Certainly you could provide "select from a list" as a backup.