but the problem is that i am not using buttons connected to the arduino
these buttons are connected to an arduino shield, and being read by a chip on the shield, the arduino only asks for its state through the i2c bus
so i'm not sure i can use the millis method?
Why not? The millis model shows how to perform an action at intervals without a delay(). You're asking how to print to the serial port at an interval without a delay(). What does external hardware have to do with this?