Expand digital port to sensor ?

The DHT22 requires specific timing, and the libraries are written for a normal Arduino pin. Rewriting it for a pin after a shift register will be almost impossible and totally impractical. It would require two shift registers (input and output), clock and data signals, and an ugly bunch of extra code.

Why do you want to use the DHT22 sensor ? It is not accurate. The BME280 is accurate and uses I2C. You can connect a number of sensors to the I2C bus. A number of DS18B20 temperature sensors can be connected to a single digital pin.

When an Arduino Uno has not enough pins, the common way is to upgrade to a Arduino Mega 2560.

There are many ways to combine buttons and leds. Perhaps you can try to free some pins. For example with a I2C LCD display instead of a normal LCD display.