Because I've seen HAL_TIM_Base_DMA_START() in the STM32F7 HAL timer library, I though maybe it is possible to, for example, call HAL_TIM_Base_DMA_START() and timer continually requesting DMA to transmit data to I2C preiodically without CPU activity?
No, because how would the timer know anything about how to control the I2C peripheral to do something over a DMA channel. At most you can send bytes at a certain rate by triggering a DMA transmission by using a timer but the I2C transaction needs to be preconfigured to that point beforehand.
I2C transactions do support DMA and you can use timer interrupts to start I2C transactions which can do the transmission of the data phase with DMA in the background.
Well - you could configure a timer to trigger a DMA to write bytes to the I2C peripheral - but it's unlikely that this would result in anything useful.
A successful I2C transaction requires Start & Stop conditions, possible Restarts, often Ack checks, etc - none of which would easily be managed with just timer-driven DMA sending bytes to the I2C.
You could configure a Timer such that its interrupt begins the I2C transaction (sends the Start bit) and gets it running to the point where you now only need to send a block of data, and then configure the DMA to send that data to the I2C peripheral ,- but you wouldn't involve the timer there - you would configure the I2C peripheral to trigger the DMA directly whenever it's ready for a new byte.
Then at the end you'd need to complete the transaction by sending a Stop bit, probably triggered by the DMA interrupt telling you that the data block is complete.