What Justin said -- measure first and then optimize if the simplest solution -- the property lists -- are too costly. Note also the property lists can be binary; see the plutil man page.
Property lists aren't magic; they have to be parsed and processed on start, too.
Thus, your best bet is to shove 'em all into a text file, one word per line.
Now, if you want to be super efficient about it, I would do something like:
use NULL characters as your delimiter
allocate a buffer of memory the size of the text file and read the entire contents of the file into it (you could use NSMutableData's +dataWithContentsOfFile:
quite easily, then just call -bytes
to get the writable buffer).
you'll obviously need a pointer to each word; trivial -- iterate through the buffer character by character and, every time you see a NULL (and aren't at the end), you know the next byte -- the next address -- will be a pointer to the first character of the next word
if you need NSStrings, use NSString's [initWithBytesNoCopy:length:encoding:freeWhenDone:][2]
Easy enough that I wouldn't even count it as premature optimization.
If you wanted to get really tricky, you could sort the words by length and do a bit of creative pointer arithmetic to avoid iterating over every character. But that would be premature.