AA - is your timer started from within your GUI, or outside of it? If the former, then if you set up your timer in such a way that it can access the handles object of the GUI, then the timer can update the table every two minutes.
For example, suppose that your timer starts when you press a button in your GUI. The pushbutton callback looks something like
function pushbutton1_Callback(hObject, eventdata, handles)
handles.timer = timer('Name','MyTimer', ...
'Period',15, ...
'StartDelay',1, ...
'TasksToExecute',inf, ...
'ExecutionMode','fixedSpacing', ...
'TimerFcn',{@timerCallback,handles.figure1});
guidata(hObject,handles);
start(handles.timer);
The above timer will fire every 15 seconds. Note how we pass the GUI figure handle as an input to the timerCallback function. This is necessary so that we can access the handles structure in the timer callback. Now, define this callback as
function [] = timerCallback(~,~,guiHandle)
if ~isempty(guiHandle)
handles = guihandles(guiHandle);
currentTime = datestr(now,'HH:MM:SS');
x = randi(255,1,1);
data = get(handles.uitable1,'Data');
data = [data ; {currentTime , x}];
set(handles.uitable1,'Data',data);
end
In the above, we get the handles structure using guihandles so that we can get the current set of data in the uitable1 control. We then add a row with the current time and x value, and set this new data to the table.