В реальном времени или нет, создание объекта в .NET довольно быстро, так что насчет ConcurrentQueue + tuples?
Таким образом, вы можете читать / писать поточно-ориентированные с довольно стандартными структурами данных.
Следующий код занял 3 секунды на моем T500 внутри Visual Studio с включенной отладкой:
Stopwatch sw = Stopwatch.StartNew();
var q = new ConcurrentQueue<Tuple<int, int, int>>();
Enumerable.Range(0, 10000000).AsParallel().ForAll(i => q.Enqueue(Tuple.Create(i, i, i)));
Console.WriteLine(sw.ElapsedMilliseconds);
Console.ReadLine();
Достаточно забавно, непараллельная версия еще быстрее.