If you have a large number of elements (Neurons) use a key to identify each one and let the value be another association which contains your properties. Essentially you would have an Association of Associations.
randomproperties[x_]:= AssociationThread[{"Property1", "Property2"}, RandomChoice[Range[100], 2]];
randomproperties[]
<|"Property1" -> 74, "Property2" -> 60|>
Creating Association of Associations
AbsoluteTiming[data = AssociationMap[randomproperties, Range[1, 1000000]];];
data[[997 ;; 999]]
<|997 -> <|"Property1" -> 91, "Property2" -> 35|>, 998 -> <|"Property1" -> 67, "Property2" -> 88|>,
999 -> <|"Property1" -> 79, "Property2" -> 20|>|>
Then reset a property of a given element.
AbsoluteTiming[data[998]["Property1"] = 449]
{0.0000198775, 449}
The data has been modified
data[[997 ;; 999]]
<|997 -> <|"Property1" -> 91, "Property2" -> 35|>, 998 -> <|"Property1" -> 449, "Property2" -> 88|>,
999 -> <|"Property1" -> 79, "Property2" -> 20|>|>
Even creating a new copy of your data doesn't really make much of a difference to the timing.
In[95]:= AbsoluteTiming[data[998]["Property1"] = 5000; x = data; x[998]]
Out[95]= {0.0000222869, <|"Property1" -> 5000, "Property2" -> 88|>}