Is there a way to list all available commands in terminal
In zsh you need to enable the completion system. Please read through man zshcompsys. To install the completion system enter the command 

compinstall


and follow the directions. Check the fpath variable

echo $fpath


in my situation I needed to declare the variable in my .zshrc

fpath=(/usr/local/share/zsh/5.0.7/functions)


This is the location of my zsh functions. After the compinit line in your .zshrc add the following lines

autoload -Uz bashcompinit
bashcompinit


This is the completions entries in my .zshrc

#\\\_ COMPLETIONS _///#
zstyle :compinstall filename '/Users/fd0/.zshrc'
zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
autoload -Uz compinit
compinit
autoload -Uz bashcompinit
bashcompinit


I can now enter the command compgen -c and it behaves similar to bash.