Take a look at this implementation: https://github.com/beworker/pinned-section-listview
It requires your adapter to implement interface with only one method:
public boolean isItemViewTypePinned(int viewType)
So you could easily integrate this library into your code.