As Bo suggest, you can do this with PM itself. Loading all files on a single contact sheet can, however, take some time and if it really is a large number of files, it won't work as PM will run out of memory.
To get all used keywords in a text file, use exiftool like this:
exiftool -r -q -T -Keywords <directory>
This outputs all keywords, the problem is that files with multiple keywords get them listed as comma separated values. Tom split those, use a very simple perl command:
perl -pe 's/, /\n/g;'
To get the unique keywords, pipe through sort -u, or if you want to count as well, though sort and uniq -c.
So the whole command becomes something like:
exiftool -r -q -T -Keywords <directory>| perl -pe 's/, /\n/g;' | sort -u
or
exiftool -r -q -T -Keywords <directory>| perl -pe 's/, /\n/g;' | sort | uniq -c
(Substitute <directory> for the root directory of your images and note that files without keywords are listed with “-” as keyword.)
Note: if you're running windows, you'll need to have e.g., perl and sort commands installed or use other tools.