GUI must runs in single thread and is not serialized.
What IS serialized (locked) is "timer" queue (" because it is in fact used for many other things as well). Means you can safely post callbacks to GUI thread.
Also, Core types ARE serialized.
So the right thing to do is to run HttpClient in different threads (I hope Tom will protest here if there is any problem with it, but I do not thing so) and update your ArrayCtrl using PostCallback.
Multithreading support is available in Unix (but is tested even less than the one on Win32... in fact I doubt that any U++ app ever run on real multiprocessor machine, and until then, some problems might be left unrevealed).