If you are low on disk space, you will have to then compromise your server load and load thumbnails dynamically using Option 1
If your server is very busy or at slow speed, it would be good to use Option 2.
But to overall speed up your website, you can combine the 2 options.
Say we have an image file called ImgZA.jpg on your server. You can dynamically call a script call imgproc.php?id=ImgZA.jpg&h=50&w=50. The imgproc.php script will check whether the thumbnail of ImgZA.jpg with size of 50 by 50 pixels is already created. If the thumbnail is already there, just use the thumbnail. If not then create the thumbnail then store it.
This will optimize disk space, server load and allows you to prevent hotlinking as well (in your imgproc.php script).