For example,
git clone --depth 1 --recursive https://github.com/gohugoio/hugoThemes.git themes
You can try:
git submodule update --init
But basically this stops on the first errors. When you don't own the repo, you probably just want to skip the broken or private repos but I don't think git has a skip-errors option yet. A foreach command might solve but haven't discovered yet.