According to Webster's not much. I'd say they were synonyms.

Shoal: a large group or number : CROWD <a shoal of fish>

School: a large number of fish or aquatic animals of one kind swimming together

http://www.m-w.com/dictionary.htm