No, you shouldn't use a timer. Typically, what you will have to do is have a class that represent an entity (in the case of the tetris, a class representing a block). It is the responsability of this class to manage the movement of the block and to draw the image of the block on the screen.
Your main loop constantly update all elements of your code and they update their positions depending if they are in movement or not.
If you are interested, you can have a look at a tutorial I made about openGL
here[
^] (the second part is more likely to interest you). This is specific to OpenGL but movement is also covered.