All opamps have an open loop gain, which is the absolute most gain you can get.
Opamps also have what is known as a gain-bandwidth product (GBWP). At least to first order, if you double the gain, then you can only get half the bandwidth. An LM324 has a GBWP of about 1MHz, so at a gain of 1000, you are only going to get a bandwidth of about 1kHz.
There are other considerations as well. You have a maximum slew rate (in the case of an LM324 it is about 50V/ms). Also, depending on the circuit it is a part of, getting a gain of 1000 may end up requiring component values that are too high or too low for the opamp to deal with well.
But it is fine to have say 3 gain stages in cascade with a gain equal to 10. The total gain will then be 10x10x10. Each stage can also be implemented as 2. order filterstages as an extra bonus
Once I needed a 60dB amplifier for a 3 MHz signal. Hey, wouldn't you know 60dB is also a gain of 1000 times?
GBWP was a severe restriction at such a high frequency. The solution was to use a dual amp to get 2 gain stages. Each had a gain of around 32 (as 32 x 32 = 1024).