Hi All,
After more research i came to understand each pixel was an object within the graphic. I thought if i reduced the number of total objects this would fix the issue.
Instead of a dotted grid, I would created a line-grid (see below) which ended up having 72 objects and a big improvement but a noticeable delay remained.
GUICtrlSetGraphic($hGraphicDiagram, $GUI_GR_COLOR, 0xCACACA)
For $iW = 1 To $iWidth
GUICtrlSetGraphic($hGraphicDiagram, $GUI_GR_MOVE, $GridSize * $iW, 0)
GUICtrlSetGraphic($hGraphicDiagram, $GUI_GR_LINE, $GridSize * $iW, $iDiagramHeight)
Next
For $iH = 1 To $iHeight
GUICtrlSetGraphic($hGraphicDiagram, $GUI_GR_MOVE, 0, $GridSize * $iH)
GUICtrlSetGraphic($hGraphicDiagram, $GUI_GR_LINE, $iDiagramWidth, $GridSize * $iH)
Next
Unlimitedly the solution came from using GUISetState(@SW_LOCK) and GUISetState(@SW_UNLOCK) while updating the controls.