The best solution I found was to limit the UI update rate but still process the CAN messages as they come in with a timer update. I add all the objects that needs to be updated into a list and update that list with tlvMyTreeListView.RefreshObject(objectToRefresh)
in the timer callback