Well, it is done, but on the way of making it, I discovered (you may already know it) that getJarInfo is not failing if the file doesn't exists on the server, urlconnection.getContentLength() is returning -1 and getLastModified() is returning 0 in that case. Dunno if that is the expected behavior, only to take note.
I have used as you propose a variable concurrentLookupThreads with default value 1, and added a new parameter al_lookup_threads, I have also tested it using our game server to see speed improvements, but please verify the code and test it if you can before applying.
The same thing for downloading jar information using multiple threads to improve speed a bit, could be applied for downloading all resources as well.
P.S.: if you apply the patch, you could say it was made by ruben01