Often I find myself in need of reorderable list functionality in my various custom editor interfaces, and so I decided to create a generalised implementation which works with generic lists List<T> and with SerializedProperty.
This list control provides drag and drop reordering and supports mixed item heights when using custom property drawers. It is generally better to present lists for serialized properties since Unity provides automatic undo/redo support for these. You can also implement your very own list adaptor to present entirely custom lists.
This control is provided as open source under the BSD license and can be downloaded from the following repository: https://bitbucket.org/rotorz/reorderable-list-editor-field-for-unity/overview