it could but it's not a great idea as you'll sample at the speed of the loop anyway
you are better off bit using interrupts at all and just using millis or micros then
void loop() {
static unsigned long lastSamplingTime =0;
if (micros() - lastSamplingTime >= 10000) { // 100Hz = every 10ms = 10000µs
float gyro_x, gyro_y, gyro_z;
float acc_x, acc_y, acc_z;
lastSamplingTime = micros();
if (IMU.gyroscopeAvailable()) IMU.readGyroscope(gyro_x, gyro_y, gyro_z);
if (IMU.accelerationAvailable()) IMU.readAcceleration(acc_x, acc_y, acc_z);
// do something with the data
•••
}
}
For extra information on using millis (or micros) and examples look at