First, you need to understand the difference between objects and instances of an object. This a mistake that many people make - creating lots of identical objects instead of instances of one object.
In tic tac toe all cells should be just one sprite object - tttSprite.
Add 3 frames - one empty, second with "X" image and third with "O", set animation speed to 0.
Add an instance variable to this sprite, name it "cellState", type text.
Place 9 instances of this sprite on the layout to form a grid.
Now when players click tttSprite, you can set its cellState to either "X" or "O" and then update either just this instance or the whole grid using this code:
tttSprite -> Compare instance variable cellState="" -> Set animation frame to 0
tttSprite -> Compare instance variable cellState="X" -> Set animation frame to 1
tttSprite -> Compare instance variable cellState="O" -> Set animation frame to 2
First event will [i]pick [/i]all instances with empty cellState and set frame to 0 for them.
Second event will pick all instances with cellState="X" and so on.
Picking is also an extremely important concept in Construct 2/3. I suggest you read these tutorials: