The images sizes are fine. They're being generated with phpthumbof which does a good job of compressing the images. That is not the problem. The problem is the time it's taking to generate the pages in the first place. This is probably a problem with the details of the way MODX is configured.
It's hard to say from the outside, but it feels to me like your getResources call (or whatever is generating the image lists) is not being cached.
Two things to check:
Make sure that the pages themselves are allowed to be cached. Click on one of the pages in the manager and go to the "settings" tab, and make sure "cacheable" is checked. If it's not, go through all of your pages, check "cacheable" and save the page.
If the pages are cacheable, then you are probably calling getResources uncached. To fix that, you will have to go into the template for these pages. Somewhere in the template, or in one of the chunks contained in the template, will probably be code that looks like this:
<div id="wrap2" class="collection topsp15">
<ul>[[!getResources? ....
Just remove the "!" from the beginning of the getResources call, so that it reads:
<div id="wrap2" class="collection topsp15">
<ul>[[getResources? ....
This will call getResources cached, which means that only the first pageview after clearing the cache will be slow, and after that it should be very fast.
If that doesn't work, or if you can't find the code, let us know and we can probably help you find the problem.
If this works out for you and you want to get into optimizing the speed even for the first pageload, we can talk about how to use getCache to partition your caching scheme - but that's probably more advanced than you need to get right now. Let's start with getting it so that it performs fast cached, then we'll worry about uncached speed.