If you're not afraid of the commandline, open Terminal and use 'zip'. For example:
milton:~/tmp$ find .
.
./.DS_Store
./bar
./bar/barfile1
./bar/barfile2
./baz
./baz/bazfile
./foo
./foo/foofile
milton:~/tmp$ zip -r foo.pk3 foo bar baz
adding: foo/ (stored 0%)
adding: foo/foofile (stored 0%)
adding: bar/ (stored 0%)
adding: bar/barfile1 (stored 0%)
adding: bar/barfile2 (stored 0%)
adding: baz/ (stored 0%)
adding: baz/bazfile (stored 0%)
You'll have to combine that information with the other posts around here that describe the layout of a pk3, because I don't have it committed to memory and don't care to look for it right now :>