How can I get a list of functions my applications uses which are actually calls to shared-library functions?

The command

otool -vH ?binary?

will return a list of functions used by the binary which are actually calls to shared-library functions, together with the names of the libraries that contain them (see next question).

How can get a list of the function names of a dynamic shared library?

First you have to find the library. This is done using locate; for example

locate libNAME.dylib

returns all paths (there might be more than one) to the library libNAME.dylib

Second, after cding to the directory holding the library, type the command

otool -vT libNAME.dylib | more

which returns the table of contents of the library in human-readable form.

How can I get a list of shared libraries used by the applications located in a certain folder hierarchy?

Summary of the above and a nice demonstration of some important UNIX concepts like command pipelines and regular expressions: The command

for item in `find . -perm -0100 -type f` ; do file $item | grep 'Mach-O' ; done | awk '{print $1}' | sed 's/\:$//' | xargs otool -vH | grep lib | sed 's/.*\(lib[^)]*\))/\1/g' | sort -u

(all on one line) will return a list of shared libraries used by all applications located in the current folder hierarchy.